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

 

 

 

posted @ 2020-08-27 21:33  一路向北321  阅读(265)  评论(0编辑  收藏  举报