meaning python flask

python - meaning - flask wikipedia



Error de matraz: werkzeug.routing.BuildError (2)

Asumiendo que def www(): ya está definido (como lo sugiere la respuesta asombrosa de unmounted), este error también puede producirse si está utilizando un blueprint que no se ha registrado.

Asegúrese de registrarlos cuando la app se crea por primera vez. Para mí fue hecho así:

from project.app.views.my_blueprint import my_blueprint app = Flask(__name__, template_folder=''{}/templates''.format(app_path), static_folder=''{}/static''.format(app_path)) app.register_blueprint(my_blueprint)

Y dentro de my_blueprint.py :

from flask import render_template, Blueprint from flask_cors import CORS my_blueprint = Blueprint(''my_blueprint'', __name__, url_prefix=''/my-page'') CORS(my_blueprint) @metric_retriever.route(''/'') def index(): return render_template(''index.html'', page_title=''My Page!'')

Modifico el inicio de sesión de la aplicación de muestra flaskr, el error de obtención de la primera línea. Pero www.html está en el directorio de plantillas.

return redirect(url_for(''www'')) #return redirect(url_for(''show_entries''))

pantalla de error:

werkzeug.routing.BuildError BuildError: (''www'', {}, None)


return redirect(url_for(''www'')) funcionaría si tiene una función en otro lugar como este:

@app.route(''/welcome'') def www(): return render_template(''www.html'')

url_for busca una función, le pasa el nombre de la función que desea llamar. Piensa en esto, de esta manera:

@app.route(''/login'') def sign_in(): for thing in login_routine: do_stuff(thing) return render_template(''sign_in.html'') @app.route(''/new-member'') def welcome_page(): flash(''welcome to our new members'') flash(''no cussing, no biting, nothing stronger than gin before breakfast'') return redirect(url_for(''sign_in'')) # not ''login'', not ''sign_in.html''

También podría hacer una return redirect(''/some-url'') , si eso es más fácil de recordar. También es posible que lo que desee, dada su primera línea, sea simplemente return render_template(''www.html'') .

Y también, no del comentario de shuaiyuancn a continuación, si está utilizando blueprints, url_for debe invocarse como url_for(blueprint_name.func_name) . Ver documentación aquí .