zoukankan      html  css  js  c++  java
  • Blueprint 使用

    注意:可以使用url_map查看路由对象

         在进行Python Web开发时选择Flask框架。项目模块划分阶段,使用Blueprint(这里暂且称之为“蓝本”)。Blueprint通过把实现不同功能的module分开,从而把一个大的application分割成各自实现不同功能的module。在一个Blueprint中可以调用另一个blueprint的view function, 但要加相应的blueprint名。
         Blueprint优点:其本质上来说就是让程序更加松耦合,更加灵活,增加复用性,提高查错效率,降低出错概率。

    蓝图的缺点:是一旦应用被创建后,只有销毁整个应用对象才能注销蓝图。

    总之,你可以多次注册蓝图,但是不一定每个蓝图都能正确响应。是否能够多次注册 实际上取决于你的蓝图是如何编写的,是否能根据不同的位置做出正确的响应。

        官方使用说明用途:

    l  把一个应用分解为一套蓝图,这是针对大型应用的理想方案,一个项目可以实例化一个应用,初始化多个扩展,并注册许多蓝图。

    l  在一个应用URL前缀和(或)子域上注册一个蓝图,URL前缀和(或)子域的参数成为蓝图中所有视图的通用视图参数(缺省情况下)。

    l  使用不同的URL规则在应用中多次注册蓝图。

    l  通过蓝图提供模板过滤器、静态文件、模板和其他工具。蓝图不必执行应用或视图函数

    l  当初始化一个Flask扩展,为以上任意一种用途注册一个蓝图。

    蓝图的概念

        蓝图的基本概念是:在蓝图被注册到应用之后,所要执行的操作的集合。当分配请求 时, Flask 会把蓝图和视图函数关联起来,并生成两个端点之前的 URL。

    蓝图的参数:

         第一个参数:当你使用 @simple_page.route 装饰器绑定一个函数时,蓝图会记录下所登记的 show 函数。当以后在应用中注册蓝图时,这个函数会被注册到应用中。另外,它 会把构建 Blueprint 时所使用的名称(在本例为 simple_page )作 为函数端点的前缀。

         第二个参数:文件夹由 Blueprint 的第二个参数指定,通常为 __name__ 。这个参数 指定与蓝图相关的逻辑 Python 模块或包。如果这个参数指向的是实际的 Python 包 (文件系统中的一个文件夹),那么它就是资源文件夹。如果是一个模块,那么这个 模块包含的包就是资源文件夹。可以通过 Blueprint.root_path 属性来查 看蓝图的资源文件夹:。

                   >>> simple_page.root_path

    '/Users/username/TestProject/yourapplication'

           可以使用 open_resource() 函数快速打开这个文件夹中的资源:

    with simple_page.open_resource('static/style.css') as f:
        code = f.read()

         第三个参数:蓝图的第三个参数是 static_folder 。这个参数用以指定蓝图的静态文件所在的 文件夹,它可以是一个绝对路径也可以是相对路径。:

          admin = Blueprint('admin', __name__, static_folder='static')
          缺省情况下,路径最右端的部分是在 URL 中暴露的部分。这可以通过 static_url_path 来改变。因为上例中的文件夹为名称是 static ,那么 URL 应该是蓝图的 url_prefix 加上 /static 。 如果蓝图注册前缀为 /admin ,那么静态文件 URL 就是 /admin/static 。
          url_for('admin.static', filename='style.css')
          但是,如果蓝图没有 url_prefix ,那么不可能访问蓝图的静态文件夹。 这是因为在这种情况下,URL应该是 / static ,而应用程序的 / static 路线优先。与模板文件夹不同,如果文件不存在于应用静态文件夹中,那么不会 搜索蓝图静态文件夹。。
     
     
    # 视图:接收请求,处理业务逻辑,返回结果;视图函数、视图类
    # 模板:接收视图返回的结果,渲染数据;
    # MVT:设计模式,本质上是为了解耦,提高效率,让更专业的事情,交给更专业的模块去做。
    # views视图、template模板、model模型
    # 视图函数不允许重名,url路径可以重复!
    # 本质:一个函数不能有两个返回值。
    # url:同一个url可以有不同的请求方法。
     
    # 路由映射是存储在列表容器中,是从前到后依次匹配,如果找到,不会继续查找。
    # Rule类存储了具体每个视图函数和url的映射关系
    # Map类存储了所有的Rule类规则
    # MapAdapter类负责匹配,正则匹配,匹配到一个url规则,让后调用其指向的函数
  • 相关阅读:
    Notebook ++ 设置护眼背景
    python 设置 excel 单元格颜色填充和字体效果
    python 设置 Excel 单元格边框线的各种风格
    python 对 excel sheet 的插入、复制、删除、重命名、设置标签颜色操作
    python 利用插入空行的方式制作工资条表格
    python 更新 openpyxl 到 3.0
    python 模拟 excel 宏、VBA 制作工资条表格
    Windows 系统
    python-pptx 实践 6.2:气泡图
    python-pptx 实践 6.1:添加五种基本图形(柱形图、折线图、饼图、条形图、散点图)
  • 原文地址:https://www.cnblogs.com/Xingtxx/p/9452656.html
Copyright © 2011-2022 走看看