2011-09-19 11 views
91

मेरी बोतल मार्गों में से आधे /<variable>/add या /<variable>/remove एक चर का कहना है की आवश्यकता है, बनाएँ। मैं उन स्थानों के लिंक कैसे बना सकता हूं?url_for साथ फ्लास्क में डायनामिक URL()

url_for() रूट करने के लिए समारोह के लिए एक तर्क लेता लेकिन मैं तर्क नहीं जोड़ सकते हैं?

उत्तर

150

यह चर के लिए कीवर्ड तथ्य होते हैं:

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

जिसका अर्थ है कि समारोह है 'डीईएफ़ (चर)' जोड़ सकता हूँ? – endolith

+3

@endolith, हां। ** 'के लिए पारित kwargs url_for' बोतल – highvolt

26

कम हैं तो अपने टेम्पलेट के लिए जे एस या सीएसएस जोड़ने के लिए the Flask API document for flask.url_for()

उपयोग के अन्य नमूना के टुकड़े को देखें।

<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 क्या आपका मतलब है? [यूआरएल रूटिंग] (http://flask.pocoo.org/docs/0.12/quickstart/#url-building) –