用Python Flask编写接口
Flask是一个轻量级的Python Web框架,可用于开发Web应用程序和API接口。它具有简单易用、灵活高效的特点,并且有大量的扩展库可供使用。本文将介绍如何用Python Flask编写接口,并提供了一些示例代码帮助你入门。
安装Flask
首先,我们需要安装Flask。可以使用以下命令通过pip安装Flask:
pip install flask
编写第一个接口
接下来,我们将编写一个简单的接口,用于返回一个字符串。首先,创建一个名为app.py
的Python文件,并输入以下代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
上述代码创建了一个名为app
的Flask应用,并在根路径'/'
上定义了一个路由处理函数hello_world
。当访问根路径时,将会返回字符串'Hello, World!'
。
运行以下命令启动Flask应用:
python app.py
可以在浏览器中访问http://localhost:5000
,即可看到返回的字符串。
路由和请求方法
在Flask中,路由是用于映射URL路径和处理函数之间的关系。我们可以通过使用@app.route()
装饰器来定义路由。
接下来,我们将展示如何定义多个路由,并且根据请求方法的不同,调用不同的处理函数。
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return 'Home Page'
@app.route('/about')
def about():
return 'About Page'
@app.route('/user/<username>', methods=['GET', 'POST'])
def user(username):
if request.method == 'GET':
return f'Hello, {username}!'
elif request.method == 'POST':
return f'Welcome, {username}!'
if __name__ == '__main__':
app.run()
上述代码中,我们定义了三个路由:'/'
、'/about'
和'/user/<username>'
。其中,'/user/<username>'
路由使用了<username>
作为动态路由参数,可以在处理函数中通过request
对象获取。
在上述代码中,index()
函数用于处理根路径请求,about()
函数用于处理'/about'
路径请求,user()
函数用于处理'/user/<username>'
路径请求。
当访问'/user/<username>'
路径时,如果使用GET方法,将返回'Hello, username!'
,其中username
为动态参数;如果使用POST方法,将返回'Welcome, username!'
。
数据传递
在开发接口时,经常需要接收客户端提交的数据,并根据数据进行一些处理。Flask提供了request
对象来处理客户端请求的数据。
接下来,我们将展示如何在接口中接收和处理GET和POST请求的数据。
from flask import Flask, request
app = Flask(__name__)
@app.route('/query', methods=['GET'])
def query():
keyword = request.args.get('keyword', '')
return f'Searching for "{keyword}"...'
@app.route('/form', methods=['POST'])
def form():
username = request.form.get('username', '')
password = request.form.get('password', '')
return f'Username: {username}, Password: {password}'
if __name__ == '__main__':
app.run()
上述代码中,query()
函数定义了一个GET请求的路由'/query'
,通过request.args.get()
方法获取URL中的查询参数。如果没有提供查询参数keyword
,则默认为空字符串。
form()
函数定义了一个POST请求的路由'/form'
,通过request.form.get()
方法获取表单中的数据。在上述代码中,我们假设表单包含了username
和password
两个字段。
响应数据
Flask提供了多种方式来响应客户端的请求。我们可以返回字符串、JSON数据、模板等不同格式的数据。
接下来,我们将展示如何返回JSON数据和模板。
from flask import Flask, jsonify, render_template
app = Flask(__name__)
@app.route('/json')
def json_response():