赞
踩
在大的项目中,需要使用到的代码量是非常惊人的,所以,将代码拆分是非常有必要的,使用蓝图的方式进行拆分,是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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。