📅  最后修改于: 2023-12-03 15:23:57.589000             🧑  作者: Mango
在本教程中,我们将讨论如何使用 REST API 创建 Covid19 Country wise status 项目。我们将使用Python和Flask框架。
REST API是指基于HTTP协议的过程间通信机制,可以用于Web应用程序,它使用HTTP请求来进行通信,并返回JSON或XML数据格式。这种机制通常被用于创建Web服务和应用程序。
在开始之前,请确保您已经安装了Python,并安装了Flask和requests模块。你可以在终端命令行中使用下列命令安装它们:
pip install Flask requests
在本教程中,我们将使用https://corona.lmao.ninja/v2/countries中提供的COVID-19 API,该API提供COVID-19的国家级统计数据。
在开始代码之前,让我们来学习一下有关Flask框架的一些基础知识:
让我们来创建一个名为 app.py 的文件,并添加以下代码:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('home.html')
if __name__ == '__main__':
app.run(debug=True)
Flask应用程序的第一行导入了Flask类。然后我们使用它来创建一个应用程序对象。
在@aoo.route('/')装饰器中,我们将根URL('/')与home()函数进行关联。在这个函数中,我们向访问者返回了一个名为home.html的HTML模板。
最后,我们使用app.run(debug=True)方法启动Flask应用程序。
在/templates中创建一个名为home.html的文件,并添加以下代码:
<!DOCTYPE html>
<html>
<head>
<title>Covid-19 Tracker</title>
</head>
<body>
<h1>Coronavirus Tracker</h1>
<table border="1">
<thead>
<tr>
<th>Country</th>
<th>Cases</th>
<th>Deaths</th>
<th>Recovered</th>
<th>Active</th>
<th>Per million</th>
<th>Tests</th>
</tr>
</thead>
<tbody>
{% for country in countries %}
<tr>
<td>{{ country.country }}</td>
<td>{{ country.cases }}</td>
<td>{{ country.deaths }}</td>
<td>{{ country.recovered }}</td>
<td>{{ country.active }}</td>
<td>{{ country.casesPerOneMillion }}</td>
<td>{{ country.tests }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
在这个模板中,我们将显示COVID-19的国家级统计数据。我们使用
更新我们的app.py文件中,import requests包,并添加以下代码来从API中获取数据:
import requests
@app.route('/countries')
def countries():
jsondata = requests.get('https://corona.lmao.ninja/v2/countries').json()
return render_template('home.html', countries=jsondata)
我们创建了一个新的URL('/countries')并将其与一个名为countries()的函数进行关联。在这个函数中,我们使用requests.get()来从API中获取JSON数据。接下来,我们将数据传递到用于呈现HTML模板的render_template()函数中。我们使用Jinja2模板引擎来进行表展示。
现在,您可以从下面的完整代码中复制粘贴代码,保存在app.py中,并在终端中运行Flask应用程序。
from flask import Flask, render_template
import requests
app = Flask(__name__)
@app.route('/')
def home():
return render_template('home.html')
@app.route('/countries')
def countries():
jsondata = requests.get('https://corona.lmao.ninja/v2/countries').json()
return render_template('home.html', countries=jsondata)
if __name__ == '__main__':
app.run(debug=True)
这个项目使用Python和Flask框架来创建COVID-19国家级数据视图。我们使用 https://corona.lmao.ninja/v2/countries API来获取数据。Flask的核心概念是请求-响应循环和路由器。相信本教程会对你更好的了解 REST API 有所帮助。