请求对象request
导入请求对象,通过method属性控制当前请求方法
from flask import request@app.route("/login",methods=["POST", "GET"])def login():if reqeust.method == "POST":...else:...return ...
处理表单数据
request.form.get("username")
处理请求参数
request.args.get("name")
属性get_data
# 将请求参数解析为字符串,as_text设置为True,返回值将是一个解码后的字符串@app.route(...)def test():request_data = request.get_data(as_text=False)...
属性get_json
# 将请求参数解析为JSON@app.route(...)def test():request_data = request.get_json()...
更多见:https://dormousehole.readthedocs.io/en/latest/api.html#flask.Request
make_response
在视图内控制响应对象的结果
1、如果视图返回的是一个响应对象,那么就直接返回它。 2、如果返回的是一个字符串,那么根据这个字符串和缺省参数生成一个用于返回的 响应对象。 3、如果返回的是一个字典,那么调用 jsonify 创建一个响应对象。 4、如果返回的是一个元组,那么元组中的项目可以提供额外的信息。元组中必须至少 包含一个项目,且项目应当由 (response, status) 、 (response, headers) 或者 (response, status, headers) 组成。 status 的值会重载状态代码, headers 是一个由额外头部值组成的列表 或字典
from flask import render_template, make_response@app.route("/")def index():user = User.query.first() # 读取用户记录movies = Movie.query.all() # 读取所有电影记录resp = make_response(render_template("index.html", user=user, movies=movies), 404)resp.headers["x-Something"] = "S value"return resp
jsonify
将数据序列化为 JSON flask视图如果返回一个dict,会被自动转为json响应,如无法满足需求,可通过jsonify将数据序列化
from flask import jsonify@app.route("/")def index():return jsonify(username="wangshunzhe",email="wangshunzhe@qq.com")
