2011-09-19 147 views

回答

150

它採用關鍵字參數的變量:

url_for('add', variable=foo) 
+9

意思是這個函數是'def add(variable)'? – endolith

+3

@ndndolith,是的。傳遞給'url_for'的kwargs將作爲Flask中的變量規則路由的函數參數傳遞 – highvolt

26

參考使用的the Flask API document for flask.url_for()

其他的示例代碼段用於連接JS或CSS到您的模板如下。

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

<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}"> 
34

在燒瓶url_for用於創建一個URL,以防止具有在整個應用程序改變URL的開銷(包括在模板中)。如果沒有url_for,如果您的應用的根網址發生變化,那麼您必須在鏈接所在的每個頁面中對其進行更改。

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

它可以作爲:

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

現在,如果你有一個鏈接索引頁:您可以使用此:

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

你可以做例如:很多東西,例如:

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

對於上面我們可以使用:

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

這樣你可以簡單地傳遞參數!

+0

我有一個問題,在第一個示例中,索引方法作爲字符串傳遞,而在第二個方法中,find_question被傳遞爲變量。爲什麼? –

+0

@AnandTyagi這是你的意思嗎? [URL路由](http://flask.pocoo.org/docs/0.12/quickstart/#url-building) –