在 Flask 中连接 MySQL 数据库
通过这个解释,我们将学习如何在 flask_mysqldb
的帮助下在 Flask 中连接 MySQL 数据库。我们还将学习如何在线设置数据库。
借助 flask_mysqldb
在 Flask 中连接 MySQL 数据库
有时用户希望直接在 SQL 中编写查询,而不是使用诸如 sql-alchemy
之类的东西,因此无论出于何种原因,你都可以选择编写查询 SQL。在 Flask 中,mysqldb
允许你这样做。
现在我们将在名为 freemysqlhosting.net
的服务上创建一个免费的 MySQL 数据库。你可以使用此链接访问该网站。
创建帐户后,你将看到如下所示的屏幕,当你创建数据库时,你将在 15 分钟内收到一封包含你的数据库信息的电子邮件。
现在我们将使用这个数据库来获取我们的 Flask 应用程序中的信息。我们要做的第一件事是安装一个名为 Flask-MySQLdb
的模块。
pip install Flask-MySQLdb
现在我们需要导入所需的库:
from flask import Flask
from flask_mysqldb import MySQL
现在我们将创建一个应用程序实例并使用 MySQL(app)
类实例化该应用程序。如果你正在使用多个 Flask 应用程序,你还可以使用以下代码来指定你的 Flask 应用程序:
mysql = MySQL()
mysql.init_app(app)
但是我们将所有内容都放在一个文件中,因此我们不需要这样做。由于我们正在使用数据库,因此我们需要设置配置。
首先,我们需要定义 MYSQL_USER
,然后我们需要 MYSQL_PASSWORD
。我们还需要定义数据库所在的 MYSQL_HOST
;它可以在你的本地计算机上,也可以在我们已经设置的单独服务上或其他任何地方。
我们也有数据库本身,所以我们必须定义数据库的名称。我们会添加一些不必要的额外配置,这有助于获取返回的数据。
它只需要元组,但在涉及数据库时字典更容易使用,因为列可以是键,而这些键的值将是特定列中的值。如果我们不添加任何内容,则默认采用元组。
app.config["MYSQL_USER"] = "user_name"
app.config["MYSQL_PASSWORD"] = "user_password"
app.config["MYSQL_HOST"] = "sql3.example.net"
app.config["MYSQL_DB"] = "Database_name"
app.config["MYSQL_CURSORCLASS"] = "DictCursor"
mysql = MySQL(app)
可以放端口,但是 MySQL 数据库默认使用 3306,所以我们不需要更新任何东西。现在我们要与数据库交互,因此我们将创建路由并创建一个名为 CONNECT_DB()
的函数,并且要与数据库交互,我们需要使用游标。
游标将允许我们执行语句以获取这些语句的结果。我们将创建一个名为 CS
的变量并使用 mysql.connection.cursor()
对其进行实例化,我们还将创建一个表并将其命名为 TABLE_NAME
,我们将定义几个列。
@app.route("/")
def CONNECT_DB():
CS = mysql.connection.cursor()
CS.execute("""CREATE TABLE TABLE_NAME (id INTEGER, name VARCHAR(20))""")
我们已经创建了表并将数据插入到表中。然后,我们需要在插入数据或更新或删除后提交。
当数据插入数据库时,我们还将返回一个字符串。
CS.execute("""INSERT INTO TABLE_NAME VALUES (1, 'Harry')""")
CS.execute("""INSERT INTO TABLE_NAME VALUES (2, 'Arthor')""")
mysql.connection.commit()
return "Executed successfully"
让我们继续运行服务器,看看浏览器是否返回了字符串。确保你的互联网连接已连接。
我们将需要验证数据是否已插入数据库。现在将进行查询以选择表。
由于我们将检索多行,我们可以使用 fetchall()
。我们将把所有信息放入 Executed_DATA
变量中。
我们将其打印到控制台并显示返回值:
CS.execute("""SELECT * FROM TABLE_NAME""")
Executed_DATA = CS.fetchall()
print(Executed_DATA)
return str(Executed_DATA[1]["name"])
让我们保存并刷新页面。我们可以看到显示的值,如果我们在控制台中向下看,我们可以看到一个包含两个项目的元组。
完整的 Python 代码:
from flask import Flask
from flask_mysqldb import MySQL
app = Flask(__name__)
app.config["MYSQL_USER"] = "user_name"
app.config["MYSQL_PASSWORD"] = "user_password"
app.config["MYSQL_HOST"] = "sql3.example.net"
app.config["MYSQL_DB"] = "Database_name"
app.config["MYSQL_CURSORCLASS"] = "DictCursor"
mysql = MySQL(app)
# mysql.init_app(app)
@app.route("/")
def CONNECT_DB():
CS = mysql.connection.cursor()
# CS.execute('''CREATE TABLE TABLE_NAME (id INTEGER, name VARCHAR(20))''')
# CS.execute('''INSERT INTO TABLE_NAME VALUES (1, 'Harry')''')
# CS.execute('''INSERT INTO TABLE_NAME VALUES (2, 'Arthor')''')
# mysql.connection.commit()
# return 'Executed successfully'
CS.execute("""SELECT * FROM TABLE_NAME""")
Executed_DATA = CS.fetchall()
print(Executed_DATA)
return str(Executed_DATA[1]["name"])
if __name__ == "__main__":
app.run(debug=True)
相关文章
运行 Flask 应用程序
发布时间:2023/03/27 浏览次数:148 分类:Python
-
我们将通过这个解释了解如何在 Visual Studio Code 中设置 Flask 环境并创建 Flask 的基本应用程序。
Flask 发送 Post 请求
发布时间:2023/03/27 浏览次数:215 分类:Python
-
我们将通过这个解释了解两种基本的 HTTP 方法(get 和 post),我们还将了解它们之间的区别,然后通过一个基本示例来说明如何从 Flask 中的基本表单发送数据。
在 Flask 中使用 url_for 创建动态 URL
发布时间:2023/03/27 浏览次数:257 分类:Python
-
通过这个解释,我们将了解 url_for() 函数的作用以及我们如何在 Flask 中创建动态 URL。我们还将学习如何在模板中使用 url_for()。
使用 Flask 下载文件
发布时间:2023/03/27 浏览次数:291 分类:Python
-
通过这个解释,我们将学习如何在 Flask 中的 send_file 函数的帮助下创建一个可下载的链接以将文件下载为附件。
更改 Flask 中的端口
发布时间:2023/03/27 浏览次数:247 分类:Python
-
我们通过这个解释学习如何在通过命令行界面运行我们的 Flask 应用程序时更改端口,我们还将学习如何在不同的端口和不同的操作系统中同时运行 Flask 应用程序。
Flask 网络套接字
发布时间:2023/03/27 浏览次数:160 分类:Python
-
通过这个解释,我们将了解 WebSocket 是什么以及它是如何在客户端和服务器之间工作的。我们还将学习如何借助 Flask 中的 flask_socketio 模块制作一个实时聊天应用程序。