05 Flask蓝图Blueprint

本文介绍了如何在Flask项目中使用蓝图(Blueprint)进行模块化开发,通过创建和注册蓝图,实现了视图函数的组织和URL管理。蓝图使得大型项目的维护和管理更加高效,展示了蓝图如何简化代码结构并提高可读性。
摘要由CSDN通过智能技术生成

在进行项目开发的过程中,如果我们把所有的视图函数都写在一个app.py主程序中,非常的不利于后期的维护和管理,我们需要将不同的app分配不同的处理功能,然后共同在组成一个完整的项目。
蓝图(Blueprint)就相当于一个一个的热拔插模块,Blueprint 是一个存储视图方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask可以通过Blueprint来组织URL以及处理请求。

蓝图Blueprint的生成和注册

  1. 新建flask项目并创建对应文件夹
    首先我们新建一个flask项目,并在项目下新建两个目录bluepring_static、blueprint_templates,然后在blueprint_templates新建蓝图文件add_book.py
    在这里插入图片描述
  2. 创建蓝图文件add_book.py
    – add_book.py
# 导入Blueprint
from flask import Blueprint

# 生成蓝图
add_book = Blueprint('blueprint_add_book', __name__)


# 生成蓝图路由以及视图函数
@add_book.route('/addbook')
def add_b():
    return '你好,这是add_book页面'
  1. 将蓝图注册到app.py中
from flask import Flas
# 导入蓝图
from blueprint.add_book import add_book

app = Flask(__name__)
# 注册蓝图
app.register_blueprint(add_book)

@app.route('/', endpoint='index')
def hello_world():
    return 'Hello World!'

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

运行程序,查看add_book的效果:
在这里插入图片描述
实现了一个简单的热拔插效果,试想一下,如果有成百上千个函数呢,代码变得简洁了许多,app是不是变得易看、方便管理很多?

蓝图中对应相关参数的引用

  1. 新建一个蓝图add_movie.py
# 导入Blueprint
from flask import Blueprint, render_template

# 生成蓝图
add_movie = Blueprint('blueprint_add_movie', __name__,
                      template_folder='blueprint_templates',  # 指定模板路径
                      static_url_path='/bp_static',  # 指定静态文件的加载路由,可以不是实际存在的目录
                      static_folder='blueprint_static')  # 静态文件存放路径,必须存在


# 生成蓝图路由以及视图函数
@add_movie.route('/addmovie')
def add_m():
    return render_template('add_movie.html')
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>这是添加电影页面</title>
</head>
<body>
<h1>这是添加电影页面</h1>
{# 对应蓝图中static_url_path='/bp_static'路径,static_folder='blueprint_static'的下面有一张图片shuai.png#}
<img src="/bp_static/shuai.png">
</body>
</html>
  1. 注册add_movie到app中
# 导入蓝图
from blueprint.add_movie import add_movie

# 注册蓝图
app.register_blueprint(add_movie)

执行程序查看效果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值