一、Flask三剑客
1. HttpResponse
@app.route("/index")
def index():
return "Hello,Flask!"
备注:在Flask 中的HttpResponse 在我们看来其实就是直接返回字符串
2. Redirect
# 导入flask中的redirect
from flask import Flask, redirect
# app中的route装饰器,用来指定视图函数的URL地址
@app.route("/red")
def red():
# redirect跳转至"/index"
return redirect("/index")
3. Render_template
from flask import Flask, render_template
@app.route("/home")
def home():
return render_template("home.html")
二、补充知识
注意: 如果要使用 render_template 返回渲染的模板,请在项目的主目录中加入一个目录 templates;否则会报错:
jinja2.exceptions.TemplateNotFound:home.html
三、特殊返回值
1. send_file
# send_file 打开并返回文件内容(图片、音频、视频)
from flask import Flask, send_file
@app.route("/sentflie")
def sent_file():
return send_file("01.jpg")
2. jsonify
# flask提供了jsonify函数供用户处理返回的序列化json数据
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/hello/<name>/<words>',methods=['GET'])
def hello(name,words):
#也可以传入key=value形式的参数,如jsonify(name=name,words=words)
return jsonify({'name':name,'words':words})
if __name__ == '__main__':
app.run("0.0.0.0",9527,debug=True)
1、Content-Type有区别
(1)jsonify的Content-Type为application/json
(2)json的Content-Type为text/html;charset=utf-8
2、解析
jsonify的作用实际上就是将我们传入的json形式数据序列化成为json字符串,作为响应的body,
并且设置响 应的Content-Type为application/json,构造出响应返回至客户端