zoukankan      html  css  js  c++  java
  • 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个视图函数

  • 相关阅读:
    openstack命令行
    Hub, bridge, switch, router, gateway的区别
    openstack奠基篇:devstack (liberty)于centos 7安装
    git常用命令备忘
    如何利用gatling创建一个性能测试例
    如何通过源码生成Gatling可执行工具
    博客园的第一篇博文
    Spring Oauth2 with JWT Sample
    你首先是一个人,然后你才是程序员。
    Maven——快速入门手册(学习记录) ****
  • 原文地址:https://www.cnblogs.com/zzy7372/p/10233332.html
Copyright © 2011-2022 走看看