J'utilise Flask (comme framework) et MongoDB (comme serveur de base de données). Pour le moment, tout ce que je peux faire, c'est simplement passer un argument que j'ai obtenu de la base de données:
@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)
Comment passer plusieurs variables de la base de données: par exemple: dans ma base de données Mongo: j'ai ces choses dans ma base de données et je voudrais les passer toutes à mon modèle.
{
users:'xxx'
content:'xxx'
timestamp:'xxx'
}
Est-il possible de le faire en utilisant Flask?
Vous pouvez transmettre plusieurs paramètres à la vue.
Vous pouvez passer toutes vos variables locales
@app.route('/')
def index():
content = """
teste
"""
user = "Hero"
return render_template('index.html', **locals())
ou passez simplement vos données
def index() :
return render_template('index.html', obj = "object", data = "a223jsd" );
return render_template('im.html', user= None, content = xxx, timestamp = xxx)
Vous pouvez transmettre autant de variables que nécessaire. Le api
extrait:
flask.render_template (template_name_or_list, ** context) Rend un modèle à partir du dossier de modèles avec le contexte donné.
Paramètres: template_name_or_list - le nom du modèle à rendre, ou un itérable avec des noms de modèle, le premier existant sera rendu dans le contexte - les variables qui devraient être disponibles dans le contexte du modèle.
Il est également possible de passer une liste aux variables de contexte de render_template et de faire référence à ses éléments avec la syntaxe de Jinja en HTML.
example.py
l = [user, content, timestamp]
return render_template('exemple.html', l=l)
exemple.html
...
<body>
{% for e in l %}
{{e}}
{% endfor %}
</body>
...