2019年1月9日:
上+上上节回顾:
Flask
第一天
1.三剑客
HTTPResponse return "hello"
from flask import render_template
render return render_template("模板")
from flask import redirect
redirect return redirect("/url")
1.jsonify #返回json格式的数据,在响应头中加入 Content-Type:application/json
from flask import jsonify
return jsonify({"k":"v"})
2.send_file # 打开文件并返回文件内容 自动识别文件类型
2.Request
request.form # 存储FormData中的数据 to_dict()
request.args # 存放 URL 中的数据 to_dict()
request.json # 在请求头中:Content-Type:application/json 自动序列化至json
request.data # 在请求头中:Content-Type中无法被识别,将请求体中的原始数据存放在data中 b""
request.method # 请求方式
request.files # 文件存储 save()
3.Session
form flask import session
app.secret_key = "!@#$%^&*()"
session["user"] = "123"
存在浏览器的cookie中了 - 由secret_key + session 加密后存放
{user:123} + secret_key - Response-cookie - 拿到cookie存储
请求带上cookie - flask收到cookie中的session 通过 secret_key反序列化
第二天
1.路由:
1.endpoint 反向生成URL from flask import url_for 默认视图函数名
2.methods 允许的请求方式 默认GET 多种请求["GET","POST"]
3."/index/<int:page>" 动态路由参数
def index(page):
4.strict_slashes=False 是否严格遵循路由地址 /index/ /index
5.redirct_to = "/login" 永久重定向 301
6.defaults = {nid:1} 默认参数
def index(nid):
2.Flask实例化配置
1.template_folder = "templates" 默认模板存放目录
2.static_folder = "static" 默认静态文件存放目录
3.static_url_path = "/static" 静态文件访问路径 "/" + static_folder
蓝图的 url_prefix 特殊配置 url前缀
3.Flask对象配置
app = Flask(__name__)
app.config.from_obj(class)
4.蓝图 当成app
from flask import Blueprint
app01 = Blueprint("app01",__name__)
@app01.route("/app01")
def appfunc():
app.register_blueprint(app01)
5.特殊装饰器:
1.before_request 在请求进入视图函数之前
@app.before_request
def be1
def be2
def be3
2.after_request 在响应返回客户端之前
@app.after_request
def af1
def af2
def af3 自下而上 执行
正常:be1 - be2 - be3 - af3 - af2 - af1
异常:be1 - af3 - af2 - af1
3.errorhandler # 重定义错误信息
@app.errorhandler(404)
def error404(error_info):
今日内容:
1.CBV - Flask基础结束
from flask import views
class Login(views.MethodView):
methods = ["GET","POST"]
decorators = [app.route]
def get(self):
print(url_for("my_login"))
return render_template("login.html")
def post(self):
return "登陆成功"
app.add_url_rule("/",view_func=Login.as_view("my_login"))
2.Flask-Session
3.WTForms
4.数据库连接池