Estoy construyendo una aplicación modular en Flask, y sigo obteniendo un error de compilación si me refiero a una función en otro Blueprint de mi Blueprint actual, por ejemplo Tengo un archivo userProfiles.pyFlask url_for produce un error al enrutar en la aplicación modular
@userP.route('/myProfile/', methods=['GET'])
def showProfile():
.....
un en otro archivo userAccounts.py tengo
@userA.route('/login/', methods=['GET', 'POST'])
def login():
.....
y luego tengo una main.py que registra todos los planos y que app.run()
ahora estoy tratando de hacer url_for ('userA.login) desde mi función showProfile pero sigo obteniendo un - werkzeug.routing.BuildError -. No he podido resolver esto y ninguna de las soluciones en línea me ha ayudado.
P.S. La función url_for tampoco funciona en mis plantillas, por alguna razón simplemente no recoge las funciones, no tuve más remedio que buscar la ruta.
sólo para añadir un poquito más información yo no hav funciones duplicadas en absoluto, todas las funciones y sus nombres son únicos y el enrutamiento url_for funciona bien dentro de cada Blueprint
Aquí está el Rastreo:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1701, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1689, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1687, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1360, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1358, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1344, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/cevdet/PycharmProjects/FlaskProjects/jobperfect/userProfiles.py", line 126, in showProfile
else: return redirect(url_for('userA.login'))
File "/usr/local/lib/python2.7/dist-packages/flask/helpers.py", line 361, in url_for
return appctx.app.handle_url_build_error(error, endpoint, values)
File "/usr/local/lib/python2.7/dist-packages/flask/helpers.py", line 354, in url_for
force_external=external)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/routing.py", line 1607, in build
raise BuildError(endpoint, values, method)
BuildError: ('userA.login', {}, None)
127.0.0.1 - - [17/Sep/2012 23:55:12] "GET /myP
Mensaje toda la traza. – Blender
También muestre el código donde ambos planos están registrados en la aplicación. –