• Flask入门


    一、创建一个简单的例子

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return '<h1>Hello world!</h1>'

    这是一个完整的应用,视图函数index使用app.route装饰器来映射到url的路径,在flask中还有一种更传统的方式:使用app.add_url_rule()方法

    def index():
        return '<h1>Hello world!</h1>'
    
    app.add_url_rule('/', 'index', index)

    add_url_rule()接收三个参数:url, 端点和视图函数,这里的端点相当与字典中的键。

    二、动态路由

    @app.route('/<name>')
    def index(name):
        return '<h1>Hello {}</h1>'.format(name)

    Flask也支持RESTful风格的动态路由,访问http://localhost:5000/wts

     可以看到'wts'已经作为参数从路由传递给了视图函数。

    三、热重载

    Flask的调试模式支持热重载,使用方式是运行flask run命令前执行:

    set FLASK_DEBUG=1

    也可以在通过编程方式启动的方式中设置:

    if __name__ == "__main__":
        app.run(debug=True)

    启用重载器后,flask会监视项目中的所有源码文件,发现变动时自动重启服务,在调试的过程中非常方便。

    四、命令行选项

    通过执行flask run --help查看。

    值得一提的是,默认情况下,flask监听localhost的连接,因此服务器只接收运行服务器的计算机发送的连接,为了让同一网络中的其他计算机发送的连接也能接收到,有两种设置方式:

    flask run --host 0.0.0.0

    或者

    if __name__ == "__main__":
        app.run(debug=True, host='0.0.0.0')

    五、应用请求上下文

    from flask import request
    @app.route('/')
    def index():
        user_agent = request.headers.get('User-Agent')
        return '<p>{}</p>'.format(user_agent)

    注意:request在同一个线程中全局可访问,但不会干扰其他线程。

    六、请求钩子

    有时在请求之前或之后执行代码会很有用。例如,请求开始时需要创建数据库连接或验证发起请求的用户身份。请求钩子通过装饰器实现,flask支持以下4种钩子:

    before_request 注册一个函数,每次请求之前运行。

    before_first_request 注册一个函数,只在处理第一个请求之前运行,通常用来执行服务器初始化任务。

    after_request 注册一个函数,如果没有未处理的异常抛出,在每次请求之后运行。

    teardown_request 注册一个函数,即使有未处理的异常抛出,也在每次请求之后运行,相当于finally。

  • 相关阅读:
    MPLab X 配置字的设置
    System.Windows.Forms.Timer定时器的“自毁”
    单片机部分缩写对照
    我的艰辛之路——2012年个人总结之三
    浏览器IE6不支持的CSS样式的选择符[转]
    SVN 用户权限管理[转]
    VC++ 随机数生成方案选择[转]
    GB/T 77142005参考文献规范[转]
    正则表达式备忘[转]
    文档、视图、框架窗口、文档模板之间的相互关系【转】
  • 原文地址:https://www.cnblogs.com/viewts/p/13252710.html
Copyright © 2020-2023  润新知