【问题标题】:Split Python Flask-Menu app into multiple files将 Python Flask-Menu 应用程序拆分为多个文件
【发布时间】:2015-01-13 17:40:48
【问题描述】:

作为这个问题的延伸Split Python Flask app into multiple files

我想使用 Flask-Menu 并将每个单独的菜单页面放在它自己的 Python 文件中。

这是我的主站点 main.py 文件,其中包含 /first 菜单项

from flask import Flask, render_template, Blueprint, abort
from flask_wtf import Form
from flask.ext import menu

from wtforms import HiddenField

from second import bp_second

class EmptyForm(Form):
    hidden_field = HiddenField('You cannot see this', description='Nope')

def create_app(configfile=None):
    app = Flask(__name__)
    app.register_blueprint(bp_second)
    menu.Menu(app=app)

    @app.route('/')
    @menu.register_menu(app, '.', 'Home')
    def index():
        form = EmptyForm()
        form.validate_on_submit()
        return render_template('index.html', form=form)

    @app.route('/first')
    @menu.register_menu(app, '.first', 'First', order=0)
    def first():
        form = EmptyForm()
        form.validate_on_submit()
        return render_template('index.html', form=form)

    return app

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

我有一个名为 second.py 的菜单项,这里有 /second 菜单项

from flask import Blueprint, render_template
from flask_wtf import Form
from flask.ext import menu

from wtforms import TextField

class TextForm(Form):
    text = TextField(u'text', [validators.Length(min=2, max=5, message="my item")])

bp_second = Blueprint('second', __name__, url_prefix='/second')

@bp_second.route("/second")
@menu.register_menu(bp_second, '.second', 'Second', order=1)
def second():
    form = TickerForm()
    form.validate_on_submit() #to get error messages to the browser
    return render_template('index.html', form=form)

当我单击/second 的菜单项时,我收到了"GET /meta HTTP/1.1" 404 - 消息。 //first 菜单项工作

【问题讨论】:

    标签: python flask


    【解决方案1】:

    我怀疑你的路线是错误的。当我读到你 second 的路线是 /second/second 所以你的菜单项应该是

    @menu.register_menu(bp_second, '.second.second', 'Second', order=1)
    

    您可以查看有关 Blueprints Support in Flask-Menu 的 Flask-Menu 文档

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 2019-11-05
      • 2016-05-05
      • 2021-12-06
      • 1970-01-01
      相关资源
      最近更新 更多