zoukankan      html  css  js  c++  java
  • Flask框架 之上下文、请求钩子与Flask_Script

    一、上下文

    • 请求上下文:request与session
    • 应用上下文:current_app与g:一次请求多个函数可以用它传参
    @app.route("/")
    def index():
        g.username = "yy"
        test()
        return "page"
    
    # 1、请求上下文:request与session
    # 2、应用上下文:current_app与g:一次请求多个函数可以用它传参
    def test():
        print(g.username)

    二、请求钩子

      请求钩子是通过装饰器实现的,flask有四种钩子(hook):

    • before_first_request:在处理第一个请求前运行
    • before_request:在每次请求前运行
    • after_request(Response):如果没有未处理的异常抛出,每次请求后执行
    • teardown_request(Response):在每次请求后执行,即使有异常抛出
    @app.route("/")
    def index():
        return "page"
    
    @app.route("/login")
    def login():
        return "login"
    
    @app.before_first_request
    def first():
        print("before_first_request")
    
    @app.before_request
    def check_login():
        do_url = request.path
        if do_url != "/login":
            return redirect(url_for("login"))
    
    @app.after_request
    def after(response):
        print("after_request")
        return response
    
    @app.teardown_request
    def teardown(response):
        print("teardown_request")
        return response

    三、Flask_Script扩展

      安装:pip install flask_script

    from flask import Flask
    from flask_script import Manager
    
    app = Flask(__name__)
    manager = Manager(app)
    
    @app.route("/")
    def index():
        return "index page"
    
    if __name__ == '__main__':
        manager.run()

    执行方式:python flask_script扩展.py runserver -p 8013

    参数说明如下:

    -?, --help show this help message and exit
    -h HOST, --host HOST
    -p PORT, --port PORT
    --threaded
    --processes PROCESSES
    --passthrough-errors
    -d, --debug enable the Werkzeug debugger (DO NOT use in production
    code)
    -D, --no-debug disable the Werkzeug debugger
    -r, --reload monitor Python files for changes (not 100% safe for
    production use)
    -R, --no-reload do not monitor Python files for changes
    --ssl-crt SSL_CRT Path to ssl certificate
    --ssl-key SSL_KEY Path to ssl key

  • 相关阅读:
    ORACLE中seq$表更新频繁的分析
    VmWare平台Windows Server 2012 无响应宕机
    SQL Challenge ——快速找到1-100之间缺失的数
    ORACLE推导参数Derived Parameter介绍
    SQL SERVER 数据库各版本功能对比
    Jsp中格式化时间戳的常用标签
    SQL Server 2014 Database Mail重复发送邮件特殊案例
    采用HTML5之“data
    多线程之策略模式
    docker attach卡住,和exec的选择
  • 原文地址:https://www.cnblogs.com/yang-2018/p/11019721.html
Copyright © 2011-2022 走看看