2012-08-23 13 views
19

Sto usando Flask (come framework) e MongoDB (come server di database). In questo momento, tutto quello che posso fare è solo passare un argomento che ho ottenuto dal database:render_template con più variabili

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

Come faccio a passare più variabili dal database: esempio: nel mio database Mongo: ho queste cose nella mia database e vorrei passarli tutti al mio modello.

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

È possibile farlo utilizzando Flask?

risposta

37

È possibile passare più parametri alla vista.

È possibile passare tutta la tua variabile locale

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

o semplicemente passare i dati

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

api doc

+0

Oh grazie. Stavo incontrando la pagina di debug quando ho provato a utilizzare più variabili. Suppongo che debbano essere i valori passati dal database Mongo che sta rendendo il pallone incontrando un errore. –

+12

Si prega di non passare 'locals()' contiene tutti i valori di default, librerie importate come flask' ​​ – Kracekumar

+0

Come potete vedere im usando MongoDB, pensate che sia saggio passare tutte le variabili (scriverle tutte sotto def)? Prestazioni saggia? Grazie per i suggerimenti però. –

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

È possibile passare tutte le variabili necessarie. Il api

estratto:

flask.render_template (template_name_or_list, ** contesto) Renders un modello dalla cartella dei modelli con il contesto dato.

Parametri: template_name_or_list - il nome del modello da resi, o un iterabile con i nomi dei modelli il primo contesto esistente sarà reso - le variabili che dovrebbero essere disponibili nel contesto del modello.

+0

Ok, grazie mille. Immagino che questo abbia a che fare con Unicode di MongoDB e l'analisi su Flask. –

Problemi correlati