flask学习之蓝图 blueprint

本文介绍如何使用Flask蓝图实现大型项目的模块化管理。通过实例演示了蓝图的基本配置及路由设置,包括URL前缀、模板和静态文件的指定方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在大的项目中,需要使用到的代码量是非常惊人的,所以,将代码拆分是非常有必要的,使用蓝图的方式进行拆分,是flask中一个便捷的方式,将不同功能分部到不同的页面上。
蓝图代码定义:
book.py

from flask import Blueprint, render_template

# 蓝图的基本使用
book_bp = Blueprint('book', __name__, url_prefix='/book', template_folder='logic', static_folder='lgcode')
# url_prefix选项的作用是将book设置为默认的根路径,其他路径是在book路径下的
# template_folder选项指定了应用模板的路径(html)
# static_floder指定了使用的静态文件的路径

# render_template
@book_bp.route('/')
def book():
    return render_template('book.html')


@book_bp.route('/detail/<bid>')
def book_detail(bid):
    return '这是图书第%s页' % bid

book.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="{{ url_for('book.static',filename='book.css') }}">
    
</head>
<body>
    <h1>这是图书首页</h1>
    <p>这是蓝图里面的首页</p>
</body>
</html>

其中的book.static指定了使用book使用的static文件夹
book.static

body{
    background:green;
}

news.py文件

from flask import Blueprint


news_bp = Blueprint('news', __name__)


@news_bp.route('/news/')
def news():
    return '这是新闻首页'

blue_print/_demo.py文件

from flask import Flask, url_for
from blueprints.book import book_bp
from blueprints.news import news_bp


app = Flask(__name__)
app.register_blueprint(book_bp)
app.register_blueprint(news_bp)
app.register_blueprint(cms_bp)

# app.config['SERVER_NAME'] = 'cheney.com:5000'


@app.route('/')
def index():
    print(url_for('book.book_detail', bid=2))
    return '这是首页'


if __name__ == '__main__':
    app.run(debug=True)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值