Vytváření dynamických URL v baňce s url_for ()

hlasů
97

Polovina mých baňky cest vyžaduje proměnnou slovo, /<variable>/addnebo /<variable>/remove. Jak mohu vytvořit odkazy na těchto místech?

url_for() přijímá jeden argument pro funkci směrovat, ale nemohu přidat argumenty?

Položena 20/09/2011 v 00:11
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
162

Trvá klíčových argumentů pro proměnné:

url_for('add', variable=foo)
Odpovězeno 20/09/2011 v 01:02
zdroj uživatelem

hlasů
27

Viz API dokumentu baňceflask.url_for()

Další ukázkové úryvky využití pro propojení js nebo CSS do šablony jsou uvedeny níže.

<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>

<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
Odpovězeno 20/09/2011 v 18:10
zdroj uživatelem

hlasů
41

url_forV baňce se používá pro vytvoření adresy URL, aby se zabránilo režii, že bude muset změnit adresy URL v celé aplikaci (včetně šablon). Aniž by url_for, pokud dojde ke změně v kořenovém URL vaší aplikace pak musíte změnit v každé straně, kde je přítomna vazba.

Syntax: url_for('name of the function of the route','parameters (if required)')

Lze jej použít jako:

@app.route('/index')
@app.route('/')
def index():
    return 'you are in the index page'

Nyní, pokud máte odkaz na stránku indexu: můžete použít toto:

<a href={{ url_for('index') }}>Index</a>

Můžete to udělat Spoustu věcí s ním, například:

@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))

Z výše můžeme použít:

<a href = {{ url_for(find_question,question_id=1) }}>Question 1</a>

Takhle můžete jednoduše předat parametry!

Odpovězeno 11/03/2016 v 09:18
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more