• 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

     

     

  • 相关阅读:
    run C source file like a script
    shared_ptr注意点
    C++ #if #endif #define #ifdef #ifndef #if defined #if !defined详解 (转)
    linux切换g++
    std::forward_list
    有关typename
    win7下 mysql安装(mysql-5.7.18-winx64.zip)
    c++ 库函数返回的字符串指针是否需要手动释放
    c++ const char *[] or char [][]
    校园资源助手
  • 原文地址:https://www.cnblogs.com/hailin2018/p/13574129.html
Copyright © 2020-2023  润新知