zoukankan      html  css  js  c++  java
  • 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'))

  • 相关阅读:
    linux中和salt中的fqdn测试小节
    centos7离线安装rpm包自动解决依赖
    (转)mysql创建表时反引号的作用
    mysql更新一个表里的字段等于另一个表某字段的值
    Navicat permium工具连接Oracle的配置
    IA64与x64的区别
    vsphere和vmware快照的不足之处
    mysql查看某库表大小
    sql之left join、right join、inner join的区别(转)
    读锁和写锁
  • 原文地址:https://www.cnblogs.com/dingyunfeng/p/12866559.html
Copyright © 2011-2022 走看看