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/')
  • @app.route('/usr/')
  • @app.route('/usr/')
  • @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

转载于:https://www.cnblogs.com/pusidun/p/9031383.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值