tutorial render_template not name data python html flask

python - data - nameerror: name ''render_template'' is not defined



Flask url_for() con múltiples parámetros (2)

El problema:

Tengo un botón de entrada en una forma que cuando se presente debe redirigir dos parámetros, search_val i , a una función more_results() , (enumerados a continuación), pero obtengo un error de tipo cuando wsgi construye.

El error es: TypeError: more_results() takes exactly 2 arguments (1 given)

html:

<form action="{{ url_for(''more_results'', past_val=search_val, ind=i ) }}" method=post> <input id=''next_hutch'' type=submit value="Get the next Hunch!" name=''action''> </form>

función del matraz:

@app.route(''/results/more_<past_val>_hunches'', methods=[''POST'']) def more_results(past_val, ind): if request.form["action"] == "Get the next Hunch!": ind += 1 queried_resturants = hf.find_lunch(past_val) #method to generate a list queried_resturants = queried_resturants[ind] return render_template( ''show_entries.html'', queried_resturants=queried_resturants, search_val=past_val, i=ind )

¿Alguna idea sobre cómo superar el error de compilación?

Lo que he intentado:

Crear un enlace a una URL de la aplicación Flask en la plantilla de jinja2

para usar parámetros múltiples con url_for ()

Error de compilación con variables y url_for en Frasco

errores de construcción similares

Como nota al margen, el propósito de la función es iterar a través de una lista cuando alguien presiona el botón "siguiente página". Estoy pasando la variable i para que pueda tener una referencia para seguir aumentando a través de la lista. ¿Hay un método matraz / jinja 2 que funcione mejor? He investigado la función de la lista de ciclismo pero parece que no se puede usar para representar una página y luego volver a procesarla con cycling_list.next() .


Su ruta no especifica cómo completar más que solo el past_val arg. Flask no puede crear mágicamente una URL que pase dos argumentos si no le das un patrón de dos argumentos.


También es posible crear rutas que admitan un número variable de argumentos, especificando valores predeterminados para algunos de los argumentos:

@app.route(''/foo/<int:a>'') @app.route(''/foo/<int:a>/<int:b>'') @app.route(''/foo/<int:a>/<int:b>/<int:c>'') def test(a, b=None, c=None): pass