Flask:如何从数据库中清楚地显示数据
Flask: How to show data clearly from database
我使用 Flask 和 Firebase 作为数据库。
我想显示来自数据库的 7 个变量,我做到了,但不是我想要的方式。
当我从数据库中获取数据时,我的屏幕如下所示:
我试图这样显示:
没有'{}'这是我的代码:这是routes.py
@app.route('/satis', methods=['GET', 'POST'])
def satis():
if (request.method == 'POST'):
sehir=request.form['il']
yas=request.form['yas']
id=request.form['id']
kat=request.form['kategori']
gun=request.form['satisgunu']
cins=request.form['cinsiyet']
tarz=request.form['satistarzi']
db = firebase.database()
db.child("names").push({"sehir": sehir,"yas":yas,"id":id,"kat":kat,"gun":gun,"cins":cins,"tarz":tarz})
todo = db.child("names").get()
to = todo.val()
return render_template('satis.html', t=to.values())
return render_template('satis.html')
这是satis.html
<div class="container-fluid">
{% for l in t %}
<ul class="list-group">
<li class="list-group-item">
<h4>{{l}}</h4>
</li>
</ul>
{% endfor %}
</div>
{% endblock %}
您可以使用 for
-loop、f-string
和 join()
将代码中的每一行转换为字符串
data = [
{'cins': 'kadin', 'gun': 'carsambra', 'id': '1', 'kat': 'cantra', 'sehir': 'izmir', 'tarz': '7', 'yas': '22'},
{'cins': 'kadin', 'gun': 'pazartesi', 'id': '1', 'kat': 'cantra', 'sehir': 'ankara', 'tarz': '5', 'yas': '18'},
]
new_data = []
for row in data:
text = ', '.join(f'{key}:{val}' for key, val in row.items())
new_data.append(text)
print(text)
结果
cins:kadin, gun:carsambra, id:1, kat:cantra, sehir:izmir, tarz:7, yas:22
cins:kadin, gun:pazartesi, id:1, kat:cantra, sehir:ankara, tarz:5, yas:18
现在您可以将 new data
发送到模板。
或者您可以尝试在 template
中使用 for
循环、row.items()
和 key,val
以及 loo.last
来跳过 ,
在最后一项之后
from flask import Flask, render_template_string
app = Flask(__name__)
@app.route('/')
def inder():
data = [
{'cins': 'kadin', 'gun': 'carsambra', 'id': '1', 'kat': 'cantra', 'sehir': 'izmir', 'tarz': '7', 'yas': '22'},
{'cins': 'kadin', 'gun': 'pazartesi', 'id': '1', 'kat': 'cantra', 'sehir': 'ankara', 'tarz': '5', 'yas': '18'},
]
return render_template_string("""
{% for row in data %}
<ul class="list-group">
<li class="list-group-item">
<h4>{% for key, val in row.items() %}{{key}}:{{val}}{{ ", " if not loop.last }}{% endfor %}</h4>
</li>
</ul>
{% endfor %}
""", data=data)
app.run(debug=True)
我使用 Flask 和 Firebase 作为数据库。
我想显示来自数据库的 7 个变量,我做到了,但不是我想要的方式。
当我从数据库中获取数据时,我的屏幕如下所示:
我试图这样显示:
@app.route('/satis', methods=['GET', 'POST'])
def satis():
if (request.method == 'POST'):
sehir=request.form['il']
yas=request.form['yas']
id=request.form['id']
kat=request.form['kategori']
gun=request.form['satisgunu']
cins=request.form['cinsiyet']
tarz=request.form['satistarzi']
db = firebase.database()
db.child("names").push({"sehir": sehir,"yas":yas,"id":id,"kat":kat,"gun":gun,"cins":cins,"tarz":tarz})
todo = db.child("names").get()
to = todo.val()
return render_template('satis.html', t=to.values())
return render_template('satis.html')
这是satis.html
<div class="container-fluid">
{% for l in t %}
<ul class="list-group">
<li class="list-group-item">
<h4>{{l}}</h4>
</li>
</ul>
{% endfor %}
</div>
{% endblock %}
您可以使用 for
-loop、f-string
和 join()
data = [
{'cins': 'kadin', 'gun': 'carsambra', 'id': '1', 'kat': 'cantra', 'sehir': 'izmir', 'tarz': '7', 'yas': '22'},
{'cins': 'kadin', 'gun': 'pazartesi', 'id': '1', 'kat': 'cantra', 'sehir': 'ankara', 'tarz': '5', 'yas': '18'},
]
new_data = []
for row in data:
text = ', '.join(f'{key}:{val}' for key, val in row.items())
new_data.append(text)
print(text)
结果
cins:kadin, gun:carsambra, id:1, kat:cantra, sehir:izmir, tarz:7, yas:22
cins:kadin, gun:pazartesi, id:1, kat:cantra, sehir:ankara, tarz:5, yas:18
现在您可以将 new data
发送到模板。
或者您可以尝试在 template
中使用 for
循环、row.items()
和 key,val
以及 loo.last
来跳过 ,
在最后一项之后
from flask import Flask, render_template_string
app = Flask(__name__)
@app.route('/')
def inder():
data = [
{'cins': 'kadin', 'gun': 'carsambra', 'id': '1', 'kat': 'cantra', 'sehir': 'izmir', 'tarz': '7', 'yas': '22'},
{'cins': 'kadin', 'gun': 'pazartesi', 'id': '1', 'kat': 'cantra', 'sehir': 'ankara', 'tarz': '5', 'yas': '18'},
]
return render_template_string("""
{% for row in data %}
<ul class="list-group">
<li class="list-group-item">
<h4>{% for key, val in row.items() %}{{key}}:{{val}}{{ ", " if not loop.last }}{% endfor %}</h4>
</li>
</ul>
{% endfor %}
""", data=data)
app.run(debug=True)