如何从我的 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 你可以使用datafor-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 中的内存泄漏

如何在 Python/Flask 中故意导致 400 错误请求?

如何从我的 Angular 前端服务中查询用户?