1. 安装flask
pip install flask
2. 启动flask:
from flask import Flask
app = Flask(__name__)
app.run()
3. Flask的路由@app.route("/index",methods=(["GET","POST"])
4. Response三剑客
# HttpResponse 返回字符串,类似Django
return "Hello Flask"
# render_template 返回模板,相当于Django的render
return render_template("/main.html")
# redirect 重定向
return redirect("/login")
5. Request
# form存放form 表单中序列化的数据
request.form #包含form 表单中的所有序列化数据
#request.args 存放URL中的序列化数据
#path路由地址,request.path
#当请求头中的数据无法被识别时将放到request.data中
#request.json 存放请求头content-type: application/json 情形
# 其他
# values 存放URL和form表单中的序列化数据, 回出现数据被覆盖现象
print(request.values)
# method 存放请求方式
print(request.method)
# url 请求全部地址
print(request.url)
# host 主机位
print(request.host)
# 查看请求头
print(request.headers)
# files 获取文件对象
print(request.files.get("file"))
file = request.files.get("file")
file.save(file.filename)
Jinja2:
{{ }}应用变量,非逻辑代码应用
{% %}逻辑代码使用
| safe 前端页面中转换成安全字符串
Markup: from flask import Markup 后台返回安全字符串
{% block jj2 %} {% endblock %} {% include "login.html" %} {% macro func(name, type_name) %} <input type="{{ type_name }}" name={{ name }}> <input type="submit" value="提交文件"> {% endmacro %} {{ func("file", "file") }}
Flask中的session组建
from flak import session
app.secret_key = "abcd"
session被序列化后存放在 浏览器的cookie中
特殊装饰器:
@app.template_global() def a_and_b(a, b): return a+b @app.template_filter() def abc(a, b, c): return a+b+c