Flask
MVC架构(vc++的MFC、Java的structs和Srping、C#的.net)
模型(Model)
封装应用业务逻辑对数据的处理,Model只提供功能性的接口,通过调用接口获取Model的功能
视图(View)
呈现数据给用户,通常一个Model为多个View提供服务
控制器(Controller)
收集用户输入提供给Model
三个组成部分分离开来,在改进代码和升级时不会相互影响。
两个主要依赖:
1、Werkzeug是WSGI的工具包(Web Server GatewayInterface)提供路由、调试、和服务器网关接口,利用该库实现socket服务端
2、Jinja2提供模板系统
Flask特点
- 轻量化、灵活性,内置开发服务器和调试器,无需安装其他网络服务器,flask默认处于调试状态,分别像Console和HTTP发送反馈报错信息
- 基于Unicode编码,默认UTF-8编码,无需担心编码问题
- 使用Jinja2,是一个灵活自由高效的Html模板技术,有利于模板继承、修改或维护
使用
1 | from flask import Flask |
render_template实现模板渲染
1 | from flask import Flask |
1 | http://127.0.0.1:5000/hello/anthor/通用渲染成功 |
重定向
1 | from flask import Flask |
也可以通过errorhandler()自定义错误页面
1 |
|
路由
1 |
|
路由器变量映射有三种,一种为默认path接收路径和字符串,第二种是int型,第三种是float
声明方式 | 访问url | 可否访问 |
---|---|---|
@app.route(‘/login/‘) | http://127.0.0.1:5000/login/ | ok |
http://127.0.0.1:5000/login | ok | |
@app.route(‘/login’) | http://127.0.0.1:5000/login/ | no |
http://127.0.0.1:5000/login | ok |
访问方式
1 |
|
回调接入点
before_request
请求任何url前调用该接入点,如果在该接入点return任何东西,flask就会停止调用,把该接入点的响应返回给 客户端
after__request
在url被调用之后调用该接入点,可以用来检查处理调用之前生成的response或是修改。
teardownafter__request
在url被调用之后调用该接入点,可以用来检查处理调用之前生成的response或是修改。与after__request不同 在于发生异常后仍然会调用该接入点,可以用来做异常处理