flask3 未整理


1.Flask启动
from flask import Flask
app = Flask(__name__)

app.run()

2.response 响应 5种
return ""
return render_template("login.html") # 默认目录 templates
return redirect("/login")

return jsonify({"k":"v"}) # 返回标准的JSON格式字符串 在响应头中加入 Content-Type:application/json
return send_file("file_path") # 打开并返回文件内容 自动识别文件类型 Content-Type:文件类型

3.request 请求
request.form.to_dict()
request.args.to_dict()
request.values # 坑 [{request.args},{request.form}]
request.json # 请求头中带有 Content-Type:application/json 将数据序列化到request.json
request.data # 请求体中的原始信息
request.files # 接收文件 save(filename)

4.路由 和 视图函数
@app.route("/login",methods=["GET","POST"],)
strict_slashes 是否严格遵循路由匹配规则 "/"结尾
methods 允许请求的方式
defaults 默认视图函数参数 {k:v} def index(k)
redirect_to 301永久重定向
endpoint 反向生成URL地址,

动态路由参数 /get_chat/<filename> def get_chat(filename)

app.add_url_rule()
# 序列一 请求方式
# 序列二 view_funcations[endpoint] = view_func

问题一:
tring_types = (str, unicode)
isinstance(methods, string_types)

5.Flask实例化配置
app = Flask(__name__)
template_folder "templates"
static_folder "static"
static_url_path "/{static_folder}"

static_host 静态文件服务访问地址
host_matching
subdomain_matching

6.Flask对象配置

class SettingFlask():
DEBUG=True

app.config.from_object(SettingFlask)

7.Flask蓝图 目录结构
详见代码

8.Session Flask-Session
Secret_key = "#$%^&*("
Flask中的session 是存放在客户端的Cookies中 key 是 app.session_cookie_name

9.特殊装饰器
@app.before_request 在请求进入视图函数之前
@app.after_request 在结束视图函数之后 响应返回客户端之前

执行顺序
正常: be1 - be2 - be3 - vf - af3 - af2 - af1
异常: be1 - af3 - af2 - af1

重定义错误返回信息
@app.errorhandler(404)
def error404(message):
print(message)
return send_file("1.jpeg")


10.CBV
class Login(views.MethodView):
def get(self,args):
return "666"

def post(self,args):
return "888"

def look(self,args):
return "999"

app.add_url_rule("/login/<args>",endpoint=None,view_func=Login.as_view(name='login'))

原文地址:https://www.cnblogs.com/dingyunfeng/p/12866559.html