在Flask中使用MySQL数据库
前面两章分别对mysql数据库进行了安装、flask的简单介绍,而本章将继续学习flask操作的mysql数据库。
MySQL数据库在Flask开发中起到了存储、管理和检索数据的重要作用,使得应用程序能够有效地处理和展示数据。
在它的查询控制台console中实行如下语句(按ctrl+enter实行):
create database new_python_mysql;
直接对mysql数据库右键单击新建,选择表格
show create table python_mysql.user; #结果: CREATE TABLE `user` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(10) DEFAULT '', `sex` varchar(10) DEFAULT '', `age` int DEFAULT '0', `email` varchar(128) DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='user_table'
#新增一条数据: insert into python_mysql.user( name, sex, age,email) values ('xinxin','women',23,'xinxin@qq.com');
使用pymysql库可以在Python中连接和操作MySQL数据库。它提供了一系列的方法和函数,使得在Python中使用MySQL数据库变得更加方便和灵活。
import pprint import pymysql from pymysql import cursors #连接mysql数据库 def conn_mysql(): return pymysql.connect( host="localhost", port= 端口号, user= "root", password= 你的密码, database= "python_mysql", charset= "utf8" ) #查询数据 def query_data(sql): conn = conn_mysql() try: cursor = conn.cursor(pymysql.cursors.DictCursor) #返回数据是字典形式,而不是数组 cursor.execute(sql) return cursor.fetchall() finally: conn.close() #更新数据: def insert_or_update_data(sql): conn = conn_mysql() try: cursor = conn.cursor() cursor.execute(sql) conn.commit() #提交 finally: conn.close() #尝试执行 if __name__ == "__main__": sql = "insert user (name,sex,age,email) values ('xingshi','man',18,'xingshi@qq.com')" insert_or_update_data(sql) sql = "select * from user" datas = query_data(sql) pprint.pprint(datas)
@app.route("/show_add_user") def show_add_user(): return render_template("show_add_user.html")
show_add_user.html 文件
提交用户信息 提交用户信息:
@app.route("/do_add_user",methods = ["POST"]) def do_add_user(): print(request.form) name = request.form.get("name") sex = request.form.get("sex") age = request.form.get("age") email = request.form.get("email") sql = f""" insert into user(name,sex,age,email) values ('{name}','{sex}',{age},'{email}') """ print(sql) db.insert_or_update_data(sql) return "success"
#展示用户列表 @app.route("/show_users") def show_users(): sql = "select id,name from user" datas = db.query_data(sql) return render_template("show_users.html",datas = datas) #... 定义一行标签,一组行标签内可以建立多组由或 标签所定义的单元格 # ... 定义表头单元格。表格中的文字将以粗体显示 #... 定义单元格标签
show_users.html 文件
查看用户列表 查看用户列表
@app.route("/show_user/") def show_user(user_id): sql ="select * from user where id=" +user_id datas = db.query_data(sql) # print(datas) user = datas[0] # print(user) return render_template("show_user.html",user=user)
show_user.html 文件
查看单个用户信息 查看单个用户信息
初始提交用户信息界面:
提交一个用户的信息:
显示提交成功,说明数据成功提交到mysql数据库中
进入展示用户列表的界面
点进最后一个用户的信息页面:
本章主要简单介绍了mysql在flask开发中作用,并简单的做了一个向数据库中提交用户信息的页面程序。
人间总有一两风,填我十万八千梦。
–2023-9-24 进阶篇