• 1.7 Flask


    Django
    Model ORM Session
    ModelForm
    amdin
    大而全
    浪费资源

    Flask
    Session
    小而精,三方组件全
    稳定性相对较差

    Tornado
    异步IO 非阻塞 原生websocket
    干净

    Sanic HOT

    from flask import Flask
    app = Flask(name)
    app.run()

    from flask import Flask
    app = Flask(name)

    @app.route("/")
    def index():
    return "Hello World"

    app.run()

    Response三剑客:
    HttpResponse: return "Hello World" 返回字符串至客户端

    from flask import render_template
    render : return render_template("login.html")
    与Django中的 render 使用一致 返回模板由浏览器渲染

    from flask import redirect
    redirect: return redirect("/login") # 302
    跳转,重定向URL

    Flask中小儿子:
    1.from flask import jsonify
    retrun jsonify({name:111}) # 返回json标准的字符串
    Content-Type:application/json

    2.from flask import send_file
    return send_file(path)

    打开文件并返回文件内容(自动识别文件格式)

    falsk 中的 request
    get post delete put

    django
    def django(req):
    return HttpResponse("hello")

    from flask import request
    request.method # 请求方式
    request.form # 存放FormData中的数据 to_dict 序列化成字典
    request.args # 获取URL中的数据 to_dict 序列化成字典
    request.url # 访问的完整路径
    request.path # 路由地址
    request.host # 主机地址
    request.values # 获取 FormData and URL中的数据 不要用to_dict
    request.json # 如果提交时请求头中的Content-Type:application/json 字典操作
    request.data # 如果提交时请求头中的Content-Type 无法被识别 将请求体中的原始数据存放 byte
    request.cookies # 获取Cookie中的数据
    request.headers # 获取请求头
    request.files # 序列化文件存储 save()

    Jinja2
    {{}} 引用变量 执行函数
    {%%} 逻辑代码
    |safe Markup 安全标签字符串
    @app.template_global()
    @app.template_filter()
    {% macro create_input(na,ty) %}
    {{ na }} :
    {% endmacro %}
    {{ create_input("username","text") }}

    Flask 中的 Session

    app.secret_key = "加密字符串" # 用于序列化和反序列化 session信息

    由于Flask中默认Session 存放位置 - 客户端的Cookies中
    所以Session需要加密 用到 secret_key
    请求进入视图函数 带上cookie 将Session从cookie序列化出来 通过secret_key 反序列化成字典
    Flask-Session

    今日作业:
    基于Session装饰器,装饰至少2个视图函数

  • 相关阅读:
    day7
    11.3NOIP模拟赛
    codeforces 880E. Maximum Subsequence(折半搜索+双指针)
    11.2NOIP模拟赛
    bzoj1483: [HNOI2009]梦幻布丁(vector+启发式合并)
    day9
    codeforces 1006 F(折半搜索)
    codeforces 28D(dp)
    P2210 Haywire(A*)
    4800: [Ceoi2015]Ice Hockey World Championship(折半搜索)
  • 原文地址:https://www.cnblogs.com/zzy7372/p/10233332.html
Copyright © 2020-2023  润新知