Python烧瓶方法定义
使用Flask时,是否必须在一个文件中包含所有方法定义,因为我试图在另一个文件中移动某些方法定义,但404未找到错误。您可以将声明移动到其他文件中,只要该文件引用了您创建的Python烧瓶方法定义,python,flask,Python,Flask,使用Flask时,是否必须在一个文件中包含所有方法定义,因为我试图在另一个文件中移动某些方法定义,但404未找到错误。您可以将声明移动到其他文件中,只要该文件引用了您创建的Flask对象,但是,如果您的应用程序越来越大,您可能需要开始研究,您不必在一个文件中定义所有内容。这在一个更大的应用程序中是非常糟糕的:)阅读并查看那里的建议(包括前面答案中提到的蓝图,这是组织大应用程序的非常好的方式) 还有一个关于如何组织和创建更大的应用程序的好方法。也可能有帮助;) 其他的方法、类和所有不是特定于Fla
Flask
对象,但是,如果您的应用程序越来越大,您可能需要开始研究,您不必在一个文件中定义所有内容。这在一个更大的应用程序中是非常糟糕的:)阅读并查看那里的建议(包括前面答案中提到的蓝图,这是组织大应用程序的非常好的方式)
还有一个关于如何组织和创建更大的应用程序的好方法。也可能有帮助;)
其他的方法、类和所有不是特定于Flask的东西都是简单的Python,所以也不需要将它们放在一个文件中。正如Flask中所建议的,您可以使用Blueprint来完成更大的应用程序。我喜欢创建彼此不太耦合的模块化应用程序的方法。所以你的蓝图大部分都有应用程序功能,比如路由或请求前
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)
关于蓝图的一些问题:
- 蓝图不是应用程序,不要指望他们会这样做
- Blueprint可以定义自己的模板文件夹,这对您很有用 可以按每个蓝图的文件夹模块指定特定模板并订购应用程序
- 当试图获取一个“.”时,应始终记住附加“.” 资源: 烧瓶应用程序的('.index')url#u 用于('.index')的url#用于蓝图
- Blueprint是烧瓶中相当新的解决方案,在撰写本答案时,它是多文件夹中模块化应用程序的最佳解决方案,并在所有应用程序中共享同一烧瓶对象amos
app = Flask(__name__)
app.register_blueprint(simple_page)