day109--Flask
1.Flask 介绍
Django Web框架
优点:大而全,组件非常丰富 admin,model,Forms,session 由Django组织定制开发
缺点:资源浪费
Flask Web框架
优点:小,精致,节省资源开销,Session组件,第三方组件数不胜数 Flask-admin Flask-SQLAlchemy WTForms
缺点:稳定性相对较差
2.Flask 启动
from flask import Flask
app = Flask(__name__)
app.run()
3.Flask 路由视图
@app.route("/index")
def shouye():
return "Hello I am Flask!!!" # HttpResponse
4.Flask 三剑客 + 特殊返回值
HttpResponse "直接返回字符串"
render render_template("page.html")
redirect redirect("/page")
Flask 小儿子:
send_file 打开并返回文件内容
jsonify JSON字符串 # Content-Type: application/json
5.Flask Request
from flask import request - request Flask 请求上下文管理
print(request.method) # 查看请求方式
print(request.args.get("id")) # URL中的参数数据
print(request.args.to_dict()) # 转化成字典
# 杂项
print(request.url) # 全路径,url包含参数 http://127.0.0.1:9999/get_req?id=11
print(request.values) # 神坑 args from 中所有数据
# CombinedMultiDict([ImmutableMultiDict([('id', '11')]), ImmutableMultiDict([('username', 'alex'), ('pwd', '')])])
# 第一个字典是url上的参数, 第二个字典是表单提交的数据
print(request.path) # 路由地址
print(request.base_url) # 不包含url参数 http://127.0.0.1:9999/get_req
print(request.host) # 地址+端口 127.0.0.1:9999
print(request.host_url) # 包含http协议 http://127.0.0.1:9999/
print(request.form) #form表单提交过来的所有数据 ImmutableMultiDict([('username', 'alex'), ('pwd', '111')])
print(request.form.get("username")) # FromData中的数据
print(request.form.to_dict()) # 转化成字典格式
# 两个特殊值
print(request.json) # 请求头:Content-type:application/json 且发送了json格式的数据
print(request.data) # 保存原始数据 b'{"username":"alex"}'
# 当请求头 不被认可的情况 存放原始数据 b"" + Content-type:application/json 也会保留原始数据
6.Jinja2
{{}} 取值,执行函数
{%%} 逻辑代码 if for
Markup("标签字符串")
@app.template_global()
@app.template_filter()
{{ func(78,56) | func2(78) }}
宏指令
{% macro func_mac(tp,na) %}
<input type="{{ tp }}" name="{{ na }}">
{% endmacro %}
{{ func_mac('text','username') }}
{{ func_mac('password','pwd') }}
7.Flask Session
form flask import session
app.secret_key = "!@#$%^@#$%^&*("
session["user"] = "value"
if session.get("user"):
return "200OK"

浙公网安备 33010602011771号