• Flask框架基础功能


    引言

    本文简单汇总Flask框架几大基础功能,包括:

    • 路由系统
    • 模板
    • 数据库
    • 几种常用Flask库

    一个简单的Flask事例

    Flask是一个基于Python,依赖Jinja2模板和WSGI服务的框架。当我们访问一个URL时,浏览器发出HTTP请求,WSGI接收到我们的请求,交给Flask框架提供的一系列功能来处理请求,并返回HTTP响应给浏览器(客户端)。
    与Django相比,Flask作为一个微框架,不会面面俱到,但可以通过安装扩展来增加提供的服务,可定制性很强。
    下面是一个简单的Flask事例,当我们访问http://127.0.0.1:5000时,浏览器会显示hello flask

    from flask import Flask
    
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return '<h1>hello, flask</h1>'
    
    if __name__ == '__main__':
        app.run(host='127.0.0.1', port=5000)
    
    

    上述程序我们创建了一个app的Flask实例,将根目录与index路由函数函数绑定,并运行在localhost:5000上。
    运行上述程序,我们可以直接python 程序名运行。如果用于开发环境,还有其他方法来运行,Flask源码里面的注释写是很清楚,需要设置FLASK_DEBUG环境变量为程序名,然后就可以通过flask run来运行该服务器。

    路由系统

    上面的程序中,@app.route('/')是一个装饰器。python里面装饰器常常用来将被装饰的函数注册为某事件的回调函数。具体来说,当Web浏览器请求/时,会触发index这个函数,并将index函数的返回值作为响应返回给浏览器。不同的URL可以有相同的视图处理函数,换句话说,一个函数可以对应多个URL。这在Django的MTV模式中,对应其中的views。

    常用的路由系统有以下五种:

    • @app.route('/usr/')
    • @app.route('/usr/int:username')
    • @app.route('/usr/float:date')
    • @app.route('/usr/path:path')
    • @app.route('/usr', methods=['GET', 'POST'])

    以下是对应关系:

    DEFAULT_CONVERTERS = {
        'default':          UnicodeConverter,
        'string':           UnicodeConverter,
        'any':              AnyConverter,
        'path':             PathConverter,
        'int':              IntegerConverter,
        'float':            FloatConverter,
        'uuid':             UUIDConverter,
    }
    

    可以看到不支持正则表达式。关于这点,可以参考Segment Fault的回答。

    To Be continue

  • 相关阅读:
    REST接口设计规范总结
    Linux 下建立 Git 与 GitHub 的连接
    Linux centos修改防火墙为iptables
    一些开源软件的国内镜像源
    centOS7下安装GUI图形界面
    mysql使用锁的分析
    php后台添加默认图片
    php执行时间
    递归获取所有分类下面子分类的id
    php laravel左连接leftJoin多条where语句
  • 原文地址:https://www.cnblogs.com/pusidun/p/9031383.html
Copyright © 2020-2023  润新知