如何从我的 Flask python 应用程序查询数据库?
Posted
技术标签:
【中文标题】如何从我的 Flask python 应用程序查询数据库?【英文标题】:How to query a database from my Flask python app? 【发布时间】:2021-12-27 01:20:03 【问题描述】:到目前为止,我已经成功地将我的代码连接到我要查询的 MariaDB 数据库:
from flask import Flask, render_template, request, flash
import mysql.connector
from datetime import date
import mariadb
app = Flask(__name__)
conn = mariadb.connect(host='IP', port= 3306, user='user', password='password', database='myDatabase')
cursor = conn.cursor()
result = cursor.execute('SELECT * FROM myTable LIMIT 10')
@app.route('/')
def index():
return result
return render_template('index.html')
# run the app.
if __name__ == "__main__":
# Setting debug to True enables debug output. This line should be
# removed before deploying a production app.
app.debug = True
app.run()
如何让查询显示在此网络应用的 HTML 页面上?
【问题讨论】:
您需要将结果数据放入简单的python对象中,如列表或字典,然后将其传递给模板进行渲染。 最好找到一些 Flask 教程 - 你会更快地获得所有答案。return render_template('index.html', data=result.fetchall())
和HTML
你可以使用data
和for
-loop 来显示它。
【参考方案1】:
你应该在任何教程中得到它。
您必须将结果作为参数发送到render_template
@app.route('/')
def index():
results = result.fetchall() # get all rows
return render_template('index.html', data=results)
接下来您可以在HTML
中使用名称data
来显示它。
data
您可以在模板中使用for
-loop 来格式化它。
<tabel>
% for row in data %
<tr>
% for item in row %
<td> item </td>
% endfor %
</tr>
% endfor %
</table>
在render_template
中,您可以使用任何名称 - 即。 all_values=data
- 并在HTML
中使用 all_values
【讨论】:
以上是关于如何从我的 Flask python 应用程序查询数据库?的主要内容,如果未能解决你的问题,请参考以下文章
在 Flask Web App (Python 3.6.6) 中使用 JS 地理定位
无法通过 Python Elastic Beanstalk 中的 Flask SQLAlchemy URI 连接到 AWS MySQL RDS 实例
在 Python Flask 中从数据库中查询数据时获取表名
Google App Engine / Datastore / Flask / Python app 中的内存泄漏