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"

posted @ 2019-02-27 17:23  SuraSun  阅读(71)  评论(0)    收藏  举报