from flask import Flaskapp = Flask(__name__)@app.route('/a')def hello_world1(): #注意接收函数名不要重复return 'Hello, World!'@app.route('/b/')def hello_world2(): #注意接收函数名不要重复return 'Thank you'if __name__ == '__main__':app.run(host='0.0.0.0',port=3100)
一.详细解释
1.创建一个该类的实例
app = Flask(__name__)
2.然后我们使用 route() 装饰器来告诉 Flask 触发函数的 URL
@app.route('/')
3.函数名称被用于生成相关联的 URL 。函数最后返回需要在用户浏览器中显示的信息
def hello_world():return 'Hello, World!'
4.缺省设置是运行服务器后,只有你自己的电脑可以使用服务,只监听 127.0.0.1。 所以要加上 —host=0.0.0.0 ,这行代码告诉你的操作系统监听所有公开的 IP
if __name__ == '__main__':app.run(host='0.0.0.0',port=3100)
二.URL构成
域名(Host,这里我们在本地运行,使用本地机ip:127.0.0.1) + 端口 + 路径
三.接收数据
@app.route('/',methods=['GET'])@app.route('/',methods=['GET', 'POST'])@app.route('/',methods=['POST'])
接收不同的数据
先要记得引入request模块
from flask import Flask,requestimport json
#接收URL params,用于接收通过URL传参的参数request.argsrequest.args.get("canshu1")#接收Headersrequest.headersrequest.headers.get("xxx")#接收 multipart/form-data 或 application/x-www-from-urlencoded 格式的数据request.formrequest.form.get("xxx")#接收 application/json 格式的数据request.datajson.loads(request.data)
#获取接收数据from flask import Flask,requestimport jsonapp = Flask(__name__)@app.route('/',methods=['GET', 'POST'])def hello_world():print(request.args)print(request.headers)print(request.form)print(request.data)print(json.loads(request.data))return 'success',200if __name__ == '__main__':app.run(host='0.0.0.0',port=3100)
四.返回数据
接口最常见的请求格式有 json/application 及 x-www-form-urlencoded
import jsonimport urllib.parse# 返回文本return 'Hello, World!'# 返回Json格式的数据a = json.dumps({"aaa":123})return a# 返回x-www-from-urlencoded格式的数据return urllib.parse.urlencode({"aaa":123})# 不需要返回数据,只需要返回状态码return 'success',200
开发中使用了flask框架,接口有用到flask_jsonify处理json,结果,请求python接口响应结果,拿到的中文都显示unicode编码,预期显示UTF-8编码。配置app.config[‘JSON_AS_ASCII’] = False app.config[‘JSONIFY_MIMETYPE’] = “application/json;charset=utf-8”
if __name__ == '__main__':#unicode编码转utf-8app.config['JSON_AS_ASCII'] = Falseapp.config['JSONIFY_MINTYPE']="application/json;charset=utf-8"app.run(host='0.0.0.0',port=3100)
