Risposte:
Prende argomenti di parole chiave per le variabili:
url_for('add', variable=foo)
url_for
passeranno come parametri di funzione per le rotte delle regole variabili in Flask
@app.route("/<a>/<b>")
e def function(a,b): ...
come sua funzione, allora dovresti usare url_for
e specificare i suoi argomenti di parole chiave in questo modo:url_for('function', a='somevalue', b='anothervalue')
url_for
in Flask viene utilizzato per la creazione di un URL per evitare il sovraccarico di dover modificare gli URL in un'applicazione (inclusi i modelli). Senzaurl_for
, se c'è una modifica nell'URL radice della tua app, devi cambiarla in ogni pagina in cui è presente il collegamento.
Sintassi: url_for('name of the function of the route','parameters (if required)')
Può essere usato come:
@app.route('/index')
@app.route('/')
def index():
return 'you are in the index page'
Ora se hai un link nella pagina dell'indice: puoi usare questo:
<a href={{ url_for('index') }}>Index</a>
Puoi fare molte cose con esso, ad esempio:
@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))
Per quanto sopra possiamo usare:
<a href = {{ url_for('find_question' ,question_id=1) }}>Question 1</a>
In questo modo puoi semplicemente passare i parametri!
{{ url_for('find_question' ,question_id=question.id) }}
e non{{ url_for('find_question' ,question_id={{question.id}}) }}
Fare riferimento al documento API Flask perflask.url_for()
Di seguito sono riportati altri frammenti di esempio di utilizzo per il collegamento di js o css al modello.
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
Modelli:
Passa il nome e l'argomento della funzione.
<a href="{{ url_for('get_blog_post',id = blog.id)}}">{{blog.title}}</a>
View, la funzione
@app.route('/blog/post/<string:id>',methods=['GET'])
def get_blog_post(id):
return id
def add(variable)
?