首页 > 其他 > 详细

flask中蓝图

时间:2021-03-13 16:51:31      阅读:33      评论:0      收藏:0      [点我收藏+]

蓝图

在Flask中,使用蓝图Blueprint来分模块组织管理。

蓝图实际可以理解为是一个存储一组视图方法的容器对象,其具有如下特点:

  • 一个应用可以具有多个Blueprint
  • 可以将一个Blueprint注册到任何一个未使用的URL下比如 “/user”、“/goods”
  • Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和函数的
  • 在一个应用初始化时,就应该要注册需要使用的Blueprint
  • 一个Blueprint并不是一个完整的应用,它不能独立于应用运行,而必须要注册到某一个应用中。

使用方式

使用蓝图可以分为三个步骤

 

1. 创建一个蓝图对象

user_bp=Blueprint(user,__name__)
  • 第一个参数为蓝图名称
  • 第二个参数指定蓝图的目录:这个模块所在目录

 

2. 在这个蓝图对象上进行操作,注册路由,指定静态文件夹,注册模版过滤器

 @user_bp.route(/)
 def user_profile():
     return user_profile

 

3. 在应用对象上注册这个蓝图对象

 app.register_blueprint(user_bp)

在目录定义蓝图

1. 创建蓝图所在的包

技术分享图片

 

  • init文件在包加载时候执行

 2. 通常在包的init文件中定义蓝图

from flask import Blueprint


goods_dp = Blueprint("goods", __name__)

 

3. 定义蓝图中路由,视图

创建视图文件:

技术分享图片

 

 定义视图:

from . import goods_dp


@goods_dp.route("/goods")
def get_goods():
    return "get goods"

 

在init中加载视图:

from flask import Blueprint


goods_dp = Blueprint("goods", __name__)

from . import views

 

4. 注册蓝图:

from flask import Flask, Blueprint
from goods import goods_dp


app = Flask(__name__, static_url_path="/s", static_folder="static_f")

# 注册蓝图
app.register_blueprint(goods_dp)

if __name__ == __main__:
    app.run()

5. 访问蓝图中定义的视图:

技术分享图片

 

 蓝图中定义路由前缀、静态文件、静态路径、模板

  • 和应用对象不同,蓝图对象创建时不会默认注册静态目录的路由。需要我们在 创建时指定 static_folder 参数。

1. 蓝图内部静态目录,静态路径

面的示例将蓝图所在目录下的static_admin目录设置为静态目录

admin = Blueprint("admin",__name__,static_folder=static_admin)

现在就可以使用/admin/static_admin/<filename>访问static_admin目录下的静态文件了。

也可通过static_url_path改变访问路径

admin = Blueprint("admin",__name__,static_folder=static_admin,static_url_path=/lib)

2 蓝图内部模板目录

蓝图对象默认的模板目录为系统的模版目录,可以在创建蓝图对象时使用 template_folder 关键字参数设置模板目录

admin = Blueprint(admin,__name__,template_folder=my_templates)

 

 

 

flask中蓝图

原文:https://www.cnblogs.com/liuxuelin/p/14529240.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!