相关推荐recommended
在Flask中使用MySQL数据库
作者:mmseoamin日期:2024-04-29

在Flask中使用MySQL数据

文章目录

  • 前言
  • 一、mysql在flask开发中的作用
    • 1.1. 首先导入mysql数据库
    • 1.2. 创建新的mysql数据库
    • 1.3. mysql数据库建表
    • 1.4. 展示建表的语句
    • 1.5. 在表中新增数据
    • 二、flask提交表单数据到mysql
      • 2.1. 使用pymysql库
      • 2.2. 提交网页表单数据
      • 总结

        前言

        前面两章分别对mysql数据库进行了安装、flask的简单介绍,而本章将继续学习flask操作的mysql数据库。


        一、mysql在flask开发中的作用

        MySQL数据库在Flask开发中起到了存储、管理和检索数据的重要作用,使得应用程序能够有效地处理和展示数据。

        1.1. 首先导入mysql数据库

        在Flask中使用MySQL数据库,在这里插入图片描述,第1张

        1.2. 创建新的mysql数据库

        在它的查询控制台console中实行如下语句(按ctrl+enter实行):

        create database new_python_mysql;
        

        1.3. mysql数据库建表

        直接对mysql数据库右键单击新建,选择表格

        在Flask中使用MySQL数据库,在这里插入图片描述,第2张

        1.4. 展示建表的语句

        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'
        

        1.5. 在表中新增数据

        #新增一条数据:
        insert into python_mysql.user( name, sex, age,email) values ('xinxin','women',23,'xinxin@qq.com');
        

        二、flask提交表单数据到mysql

        2.1. 使用pymysql库

        使用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)
        

        2.2. 提交网页表单数据

        @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 文件

        
        
        
            
            查看用户列表
        
        
            

        查看用户列表

        {% for user in datas %} {% endfor %}
        用户ID 用户名称 查看详情
        {{ user["id"]}} {{ user["name"]}} 查看详情
        @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 文件

        
        
        
            
            查看单个用户信息
        
        
            

        查看单个用户信息

        用户ID {{ user["id"] }}
        姓名 {{ user["name"] }}
        年龄 {{ user["age"] }}
        性别 {{ user["sex"] }}
        邮箱 {{ user["email"] }}

        初始提交用户信息界面:

        在Flask中使用MySQL数据库,在这里插入图片描述,第3张

        提交一个用户的信息:

        在Flask中使用MySQL数据库,在这里插入图片描述,第4张

        显示提交成功,说明数据成功提交到mysql数据库中

        在Flask中使用MySQL数据库,在这里插入图片描述,第5张

        在Flask中使用MySQL数据库,在这里插入图片描述,第6张

        进入展示用户列表的界面

        在Flask中使用MySQL数据库,在这里插入图片描述,第7张

        点进最后一个用户的信息页面:

        在Flask中使用MySQL数据库,在这里插入图片描述,第8张


        总结

        本章主要简单介绍了mysql在flask开发中作用,并简单的做了一个向数据库中提交用户信息的页面程序。

        人间总有一两风,填我十万八千梦。

        –2023-9-24 进阶篇