编程学习网 > 编程语言 > Python > flask框架的基本原理
2022
11-29

flask框架的基本原理

今天编程学习网为大家讲解flask框架的基本原理,有需要的小伙伴可以参考一下:

Flask 是 Python 编写的一款轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。Flask 使用 BSD 授权。其中两个环境依赖是 Werkzeug 和 jinja2,这意味着它不需要依赖外部库。正因如此,我们将其称为轻量级框架。

对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。
1.1 WSGI是什么?
WSGI(web服务网关接口(Python Web Server Gateway Interface,缩写为WSGI)的本质是一种约定,是Python web开发中 web服务器与web应用程序之间数据交互的约定。
网关协议的本质是为了解耦,实现web服务器和web应用程序的分离,WSGI就是一个支持WSGI的web服务器与Python web应用程序之间的约定。
1.2 Flask的优点
Flask属于微框架(micro-framework)这一类别,微架构通常是很小的不依赖外部库的框架。
框架很轻量
更新时依赖小
专注于安全方面的bug
1.3 Flask框架依赖组件
Route(路由)
templates(模板)
Models(ORM模型)
blueprint(蓝图)
Jinja2模板引擎
1.4 Flask钩子函数
在Flask中钩子函数是使用特定的装饰器的函数。钩子函数可以在正常执行的代码中,插入一段自己想要执行的代码,那么这种函数就叫做钩子函数。
常用的钩子函数:
before_first_request:处理第一次请求之前执行。
@app.before_first_request
def first_request():
    print("first time request")
before_request:在每次请求之前执行,通常可以用这个装饰器来给视图函数增加一些变量。
@app.before_request
def before_request():
id = session.get('id')
    name = session.get('name')
    if id:
        g.user = name
context_processor:上下文处理器,返回的字典中的键可以在模板上下文中使用。
@app.context_processor
def my_context_processor():
    if hasattr(g, 'user'):
        return {'login_user': g.user}
    return {}
template_filter:在使用Jinja2模板的时候自定义过滤器。比如可以增加一个upper的过滤器。
@app.template_filter
def upper_filter(s):
return s.upper()
以上就是flask框架的基本原理的详细内容,想要了解更多Python教程欢迎持续关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取