Flask(フレームワークとして)とMongoDB(データベースサーバーとして)を使用しています。今、私ができることは、データベースから取得した引数を1つ渡すだけです。
@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)
データベースから複数の変数を渡すにはどうすればよいですか:例:Mongoデータベース内:データベースにこれらのものを持っているので、それらをすべてテンプレートに渡したいです。
{
users:'xxx'
content:'xxx'
timestamp:'xxx'
}
Flaskを使用してそれを行うことは可能ですか?
ビューに複数のパラメーターを渡すことができます。
すべてのローカル変数を渡すことができます
@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" );
return render_template('im.html', user= None, content = xxx, timestamp = xxx)
必要な数の変数を渡すことができます。 api
抜粋:
flask.render_template(template_name_or_list、** context)指定されたコンテキストでテンプレートフォルダーからテンプレートをレンダリングします。
パラメータ:template_name_or_list –レンダリングされるテンプレートの名前、または最初に存在するテンプレート名でイテレート可能コンテキストがレンダリングされますcontext –テンプレートのコンテキストで利用可能な変数。
リストをrender_templateのコンテキスト変数に渡し、HTMLのJinjaの構文でその要素を参照することもできます。
example.py
l = [user, content, timestamp]
return render_template('exemple.html', l=l)
exemple.html
...
<body>
{% for e in l %}
{{e}}
{% endfor %}
</body>
...