2012-08-23 11 views
19

मैं फ्लास्क (फ्रेमवर्क के रूप में) और मोंगोडीबी (डेटाबेस सर्वर के रूप में) का उपयोग कर रहा हूं। अभी, सब मैं कर सकता हूँ सिर्फ एक तर्क यह है कि मैं डेटाबेस से मिला पारित किया जाता है:एकाधिक चर के साथ render_template

@app.route('/im/', methods=['GET', 'POST']) 
def im_research(user=None): 
    error = None 
    if request.method == 'POST': 
     if request.form['user']: 
      user = mongo.db.Users.find_one_or_404({'ticker':request.form['user']}) 
      return redirect(url_for('im_user',user= user)) 
     else: 
      flash('Enter a different user') 
      return redirect(url_for('im')) 
    if request.method == 'GET': 
     return render_template('im.html', user= None) 

कैसे मैं डेटाबेस से कई चर पारित कार्य करें: जैसे: मेरी मोंगो डेटाबेस में: मैं इन बातों है मेरी डेटाबेस और मैं उन्हें अपने टेम्पलेट में पास करना चाहता हूं।

{ 
users:'xxx' 
content:'xxx' 
timestamp:'xxx' 
} 

क्या फ्लास्क का उपयोग करके ऐसा करना संभव है?

उत्तर

37

आप दृश्य में एकाधिक पैरामीटर पास कर सकते हैं।

आप अपने सभी स्थानीय चर

@app.route('/') 
def index(): 
    content = """ 
    teste 
    """ 
    user = "Hero" 
    return render_template('index.html', **locals()) 

पारित कर सकते हैं या बस अपने डेटा

def index() : 
    return render_template('index.html', obj = "object", data = "a223jsd"); 

api doc

+0

ओह धन्यवाद। जब मैंने एकाधिक चर का उपयोग करने की कोशिश की तो मुझे डीबग पेज का सामना करना पड़ रहा था। मुझे लगता है कि यह मोंगो डेटाबेस से गुजरने वाले मान होना चाहिए जो फ्लास्क मुठभेड़ त्रुटि बना रहा है। –

+12

कृपया 'लोकल() 'को पास न करें, इसमें सभी' डिफ़ॉल्ट, आयातित लाइब्रेरी जैसे फ्लास्क ' – Kracekumar

+0

शामिल हैं जैसा कि आप मोंगोडीबी का उपयोग करके आईएम देख सकते हैं, क्या आपको लगता है कि सभी चरों को पार करना बुद्धिमान है (उन्हें सभी को डीफ़ के तहत लिखें)? प्रदर्शन के अनुसार? हालांकि सुझावों के लिए धन्यवाद। –

9
return render_template('im.html', user= None, content = xxx, timestamp = xxx) 

आप जितनी जरूरत हो उतनी चर पारित कर सकते हैं। api

अंश:

flask.render_template (template_name_or_list, ** संदर्भ) दिया संदर्भ के साथ टेम्पलेट फ़ोल्डर से एक टेम्पलेट रेंडर।

पैरामीटर: template_name_or_list - टेम्पलेट के नाम प्रदान की गई हो, या एक iterable टेम्पलेट नाम पहले एक मौजूदा रेंडर किया जाएगा संदर्भ के साथ - चर उस टेम्पलेट के संदर्भ में उपलब्ध होना चाहिए।

+0

ठीक है, बहुत बहुत शुक्रिया गुजरती हैं। मुझे लगता है कि इसे मोंगोडीबी यूनिकोड के साथ करना था, और इसे फ्लास्क पर पार्स करना था। –

संबंधित मुद्दे