flask_3:Flask 简介、视图、路由(2020-08-27总结)
flask简介参考自:
(1)Flask 简介、视图、路由:
(2)Flask视图:
目录:
1、web框架—flask
2、flask常用扩展包
3、flask相关的基本概念
4、小应用实例
5、Blueprint进行多模块应用的编写
6、Flask-Admin:简单而可扩展的管理接口的框架
1、web框架—flask:
框架的作用就是:避免重复造轮子。在 Python 中常用的 Web 框架有:flask(轻量级)、django(大项目用)、tornado。
Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。
Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。
Flask的核心有2个:
- Jinja2:模板引擎
- Werkzeug(路由模块):WSGI 工具箱
、
Werkzeug库的 routing 模块负责实现 URL 解析。不同的 URL 对应不同的视图函数,routing模块会对请求信息的URL进行解析,匹配到URL对应的视图函数,执行该函数以此生成一个响应信息。
注意:url可以重复,视图函数不能重复。url可以指定不同的请求方式,url 查找视图 从上往下执行,如果找到,不会继续匹配。但是视图函数不能重复,函数只允许有一个返回值。
routing模块内部有:
- Rule类
- 用来构造不同的URL模式的对象,路由URL规则
- Map类
- 存储所有的URL规则和一些配置参数
- BaseConverter的子类
- 负责定义匹配规则
- MapAdapter类
- 负责协调Rule做具体的匹配的工作
2、Flask常用扩展包:
- Flask-Admin:简单而可扩展的管理接口的框架(常用)
- Flask-SQLalchemy:操作数据库;
- Flask-script:插入脚本;
- Flask-migrate:管理迁移数据库;
- Flask-Session:Session存储方式指定;
- Flask-WTF:表单;
- Flask-Mail:邮件;
- Flask-Bable:提供国际化和本地化支持,翻译;
- Flask-Login:认证用户状态;
- Flask-OpenID:认证;
- Flask-RESTful:开发REST API的工具;
- Flask-Bootstrap:集成前端Twitter Bootstrap框架;
- Flask-Moment:本地化日期和时间;
3、flask相关的基本概念:
路由、视图、视图函数、调试模式、变量规则、重定向、URL 构建/url_for()
、HTTP 方法(get/post)、渲染模板(默认为templates文件夹)、静态文件(?)、请求对象(request.form,request.args)、文件上传(?)、
状态保持(Cookies、Session)、密钥+日志(?)、JSON 格式的 API、错误和抓取错误
4、小应用实例
from flask import Flask # Flask函数接收一个参数__name__,它会指向程序所在的包 app = Flask(__name__) # 装饰器的作用是将路由映射到视图函数 index @app.route('/') def index(): return 'Hello world' # Flask应用程序实例的 run 方法 启动 WEB 服务器 if __name__ == '__main__': app.run()
5、Blueprint进行多模块应用的编写
当应用比较简单,只有1个模块的时候,我们可以像上面示例那样,把所有的应用都放到app.py中,例如工作中,各个投放平台的点击数据接收。但是当开发的模块比较多的时候,就会导致文件繁杂,不好维护。用蓝图能很好地解决这个问题,在各个模块中生成蓝图,然后统一在app.py中进行注册,用不同的URL前缀进行区分。
具体参考:
(1)Flask使用Blueprint进行多模块应用的编写:https://cloud.tencent.com/developer/article/1033429
(2)flask里面的Blueprint:https://www.jianshu.com/p/6706b6e4c417
6、Flask-Admin:简单而可扩展的管理接口的框架
Flask-Admin是一个简单易用的Flask扩展,让你可以很方便并快速地为Flask应用程序增加管理界面。
具体参考:【译】Flask-Admin中文入门教程
flask简介参考自:
(1)Flask 简介、视图、路由:https://blog.csdn.net/Scrat_Kong/article/details/81564912#Web%E6%A1%86%E6%9E%B6
(2)Flask视图:https://blog.csdn.net/zzw19951261/article/details/80461047