蓝图

蓝图的基本使用

  • 作用:为了进行模块化开发
  • 特点:属于flask中自带的,不需要安装扩展就能使用
  • 蓝图的使用流程:
    1. 创建蓝图对象
    2. 使用蓝图装饰视图函数
    3. 将蓝图注册到app对象

示例:
user:

from flask import Blueprint

# 1.创建蓝图对象
user = Blueprint("user", __name__)


# 2.使用蓝图装饰视图函数
@user.route("/user_info")
def user_info():
    return "user info"

product:

from flask import Blueprint

# 1.创建蓝图对象
product = Blueprint("product", __name__)


# 2.使用蓝图装饰视图函数
@product.route('/product_info')
def product_info():
    return "product info"

blue:

from flask import Flask
from user import user
from product import product

app = Flask(__name__)
# 3.将蓝图注册到app对象中
app.register_blueprint(user)
app.register_blueprint(product)


@app.route('/')
def index():
    return "hello world"


if __name__ == '__main__':
    print(app.url_map)
    app.run(debug=True)

以包的形式使用蓝图

  • 作用:以包的形式管理使用蓝图,更加灵活
  • 特点:每个蓝图可以有自己的模板文件,静态文件,配置文件等

示例:
创建如下图所示的层级结构:
在这里插入图片描述
init.py代码:

from flask import Blueprint

# 1.创建蓝图对象
user_blue = Blueprint("user", __name__)

# 导入views
from user import views

views.py代码:

from user import user_blue


# 2.装饰视图函数
@user_blue.route('/user_info')
def user_info():
    return "user info"

blue_print.py代码:

from flask import Flask
from user import user_blue

app = Flask(__name__)
app.register_blueprint(user_blue)


@app.route('/')
def index():
    return "hello world"


if __name__ == '__main__':
    print(app.url_map)
    app.run(debug=True)

  • 注意点:views.py中的from user import views不能加到上方,会造成‘循环导包’问题。
  • 循环导包:两个文件之间相互引用,并且引用的格式不正确,就会导致程序运行不了。python中运行循环导入,但是导入的结构要合理。

蓝图参数含义

  • 参数1:name,表示蓝图的名字,用来标识蓝图装饰的视图函数所属的蓝图
  • 参数2:import_name,一般固定写法写作__name__,表示的是蓝图所在包的名字
  • 参数3:static_folder,用来存储静态文件的
  • 参数4:url_prefix,给所用使用该蓝图装饰的视图函数都加上一个访问前缀
  • 参数5:template_folder,表示蓝图自己的模板文件,如果app中也设置自己的模板,如果文件名相同,优先访问app的

示例:

user_blue = Blueprint("user", __name__, static_folder="static", url_prefix="/user", template_folder="templates")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值