Respuestas:
Toma argumentos de palabras clave para las variables:
url_for('add', variable=foo)
url_for
pasarán como parámetros de función para rutas de reglas variables en Flask
@app.route("/<a>/<b>")
y def function(a,b): ...
como su función, entonces debe usar url_for
y especificar sus argumentos de palabras clave de esta manera:url_for('function', a='somevalue', b='anothervalue')
url_for
in Flask se usa para crear una URL para evitar la sobrecarga de tener que cambiar las URL en una aplicación (incluidas las plantillas). Sin url_for
, si hay un cambio en la URL raíz de su aplicación, entonces debe cambiarlo en cada página donde está presente el enlace.
Sintaxis: url_for('name of the function of the route','parameters (if required)')
Se puede usar como:
@app.route('/index')
@app.route('/')
def index():
return 'you are in the index page'
Ahora, si tiene un enlace a la página de índice: puede usar esto:
<a href={{ url_for('index') }}>Index</a>
Puedes hacer muchas cosas con él, por ejemplo:
@app.route('/questions/<int:question_id>'): #int has been used as a filter that only integer will be passed in the url otherwise it will give a 404 error
def find_question(question_id):
return ('you asked for question{0}'.format(question_id))
Para lo anterior podemos usar:
<a href = {{ url_for('find_question' ,question_id=1) }}>Question 1</a>
¡Así puedes pasar los parámetros!
{{ url_for('find_question' ,question_id=question.id) }}
y no{{ url_for('find_question' ,question_id={{question.id}}) }}
Consulte el documento API de Flask paraflask.url_for()
A continuación se muestran otros fragmentos de muestra de uso para vincular js o css a su plantilla.
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
Plantillas:
Pase el nombre de la función y el argumento.
<a href="{{ url_for('get_blog_post',id = blog.id)}}">{{blog.title}}</a>
Ver, función
@app.route('/blog/post/<string:id>',methods=['GET'])
def get_blog_post(id):
return id
def add(variable)
?