🍖Flask入门介绍
引入
1.三大主流 web 框架
- django 框架(同步)
特点 : 大而全,自带的功能组件非常多!类似于航空母舰
不足 : 有时候过于笨重
- flask 框架(同步)
特点 : 小而精 自带的功能特别特别特别的少, 类似于游骑兵, 但第三方的模块特别特别特别的多,如果将flask第三方的模块加起来完全可以盖过django
不足 : 比较依赖于第三方的开发者
ps : 三行代码就可以启动一个 flask 后端服务
- tornado 框架(异步)
异步非阻塞 速度非常的快 快到可以开发游戏服务器
- Sanic 框架
- FastAPI 框架
- .....
2.Web框架三部分
- A : socket 部分
- B : 路由与视图匹配部分
- C : 模板语法部分
3.三种主流框架三部分的使用情况
- Django
A : 用的是别人的 (wsgiref模块)
B : 用的是自己的
C : 用的是自己的 (没有jinja2好用 但是也很方便)
- flask
A : 用的是别人的 (werkzeug(内部还是wsgiref模块))
B : 自己写的
C : 用的别人的 (jinja2)
- tornado
A,B,C都是自己写的
4.wsgi 与 wsgiref
👉CGI、FastCGI、WSGI、uWSGI、uwsgi关系
- 实现wsgi协议本质就是一个socket服务端
- django框架是一个可调用的对象
- uwsgi是一个web服务器, 上线的时候用
- 而wsgiref一般本地测试(并发能力弱)
一.Flask由来
Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。
Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。
其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是 Flask 框架的核心。
Flask官网文档 : https://flask.palletsprojects.com/en/1.1.x/
Flask中文文档 : https://dormousehole.readthedocs.io/en/latest/
二.Flask常用第三方扩展包
- Flask-SQLalchemy:操作数据库,ORM. 号称操作数据库最快的框架SQLalchemy;
- Flask-script:终端脚本工具,脚手架;
- Flask-migrate:管理迁移数据库. 比Django的更加强大, 迁移数据的过程中还可以回滚;
- Flask-Session:Session存储方式指定;
- Flask-WTF:表单;
- Flask-Mail:邮件;
- Flask-Bable:提供国际化和本地化支持,翻译;
- Flask-Login:认证用户状态;
- Flask-OpenID:认证, OAuth;
- Flask-RESTful:开发REST API的工具;
- Flask JSON-RPC: 开发rpc远程服务[过程]调用
- Flask-Bootstrap:集成前端Twitter Bootstrap框架
- Flask-Moment:本地化日期和时间
- Flask-Admin:简单而可扩展的管理接口的框架
- 更多flask官方推荐的扩展
三.werkzeug 介绍
1.简介
-
Werkzeug是一个WSGI工具包,它可以作为一个Web框架的底层库
-
werkzeug 不是一个web服务器,也不是一个web框架,而是一个工具包
-
官方的介绍说是一个 WSGI 工具包,它可以作为一个 Web 框架的底层库,因为它封装好了很多 Web 框架的东西,例如 Request,Response 等等
2.使用
from werkzeug.wrappers import Request, Response
@Request.application
def hello(request):
return Response('Hello World!')
if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('localhost', 4000, hello)
四.Flask 安装
1.Pycharm 中安装
在搜索框中搜索 Flask(大写开头)
2.命令行安装
pip3 install flask==[版本号]
pip3 install flask==1.1.1
五.创建Flask项目
与django不同,flask不会提供任何的自动操作,所以需要手动创建项目目录,需要手动创建启动项目的管理文件
例如:创建项目目录 flaskdemo,在目录中创建manage.py.在pycharm中打开项目并指定上面创建的虚拟环境