使用 Flask 时,是否必须将所有方法定义放在一个文件中,因为我试图将一些方法定义移动到另一个文件中但 404 未找到错误。
问问题
628 次
3 回答
1
只要该文件具有对Flask
您创建的对象的引用,您就可以将声明移动到其他文件中,但是如果您的应用程序变得足够大以保证您可能应该开始研究Flask 蓝图
于 2012-12-22T21:06:20.270 回答
0
正如 Flask 中所建议的,您可以使用 Blueprint 来完成更大的应用程序。我喜欢创建彼此不太耦合的模块化应用程序的方法。因此,您制作的蓝图大部分都具有应用程序功能,例如路由或 before_request。
simple_page = Blueprint('simple',__name__,template_folder='templates')
@simple_page.route('/', defaults={'page': 'index'})
@simple_page.route('/<page>')
def show(page):
try:
return render_template('pages/%s.html' % page)
except TemplateNotFound:
abort(404)
然后你注册它:
app = Flask(__name__)
app.register_blueprint(simple_page)
一些关于蓝图的信息:
- 蓝图不是应用程序,不要指望它们会这样。
- 蓝图可以定义它们自己的模板文件夹,这很有用,您可以通过每个蓝图的文件夹模块来指定模板并为您的应用程序排序。
您应该始终记住附加一个“。” 尝试获取资源时:
url_for('.index') #对于烧瓶应用
url_for('.index') #用于蓝图
在撰写此答案时,蓝图是 Flask 中相当新的解决方案,是多个文件夹中模块化应用程序的最佳解决方案,并且在所有应用程序中共享相同的 Flask 对象。
于 2013-02-28T17:18:25.070 回答