• Flask 2.0:版本新特性


    Blog:博客园 个人

    使用下面的命令更新 Flask:

     pip install -U flask
    

    新特性

    Changes:最大变化:大变化便是放弃对Python 2和3.5版本的支持。

    基本的 async/await 支持(#3412

    可以定义异步视图(以及异步错误处理函数、异步请求钩子函数):

    import asyncio
    from flask import Flask
     
    app = Flask(__name__)
     
    @app.route('/')
     async def say_hello():
        await asyncio.sleep(1)
        return {'message': 'Hello!'}
    

    注意:需要安装依赖,命令:pip install -U flask[async]

    快捷路由装饰器(#3907

    新增了下面的快捷路由装饰器:

    • app.get()
    • app.post()
    • app.delete()
    • app.put()
    • app.patch()

    使用 app.post() 等同于 app.route(methods=['POST'])

    from flask import Flask
     
    app = Flask(__name__)
     
    @app.post('/')
    def index():
        return {'message': 'Hello!'}
    

    Tips:如果需要处理多种方法类型的请求,请用app.route()装饰器。

    支持嵌套蓝本(#593, #1548, #3923)

    对于一个比较大的项目,一般会使用蓝本来组织不同的模块。而如果你的项目非常大,那么嵌套蓝本就可以派上用场了。借助嵌套蓝本支持,你可以在某个蓝本之内再创建多个子蓝本,对项目进行多层模块化组织(而且支持无限嵌套,你可以嵌套很多层):

     parent = Blueprint("parent", __name__)  # 创建父蓝本
     child = Blueprint("child", __name__)  # 创建子蓝本
     parent.register_blueprint(child, url_prefix="/child")  # 把子蓝本注册到父蓝本上
     app.register_blueprint(parent, url_prefix="/parent")  # 把父蓝本注册到程序实例上
    

    这样在生成子蓝本的 URL 时需要传入完整的端点链:

     url_for('parent.child.create')
     /parent/child/create
    
  • 相关阅读:
    存储过程
    数据库中的锁
    数据库事务
    三大范式
    IOC(一)
    rabbitmq部署
    配置SQLServer2012,允许远程连接
    6种常见的Git错误以及解决的办法
    灵活使用Win+R快捷键提高工作效率
    sql 创建视图常用的几种sql函数
  • 原文地址:https://www.cnblogs.com/Rohn/p/15975683.html
Copyright © 2020-2023  润新知