【Python Web】Flask框架(九)MYSQL+python案例

文章目录

      • 前提
      • 案例:员工管理系统
        • 使用mysql创建表格
        • python操作mysql
        • 输入数据
        • 查询数据
        • 删除数据
        • 修改数据
        • 注意

前提

  • python相关:基础,函数,数据类型,面向,模块
  • 前端开发:HTML,CSS,JavaScript,jQuery。[静态页面](任何编程语言都可以结合其进行开发,才能形成动态页面)
  • 动态:需要用到web框架的功能

txt文件和excel文件可以修改数据,读取数不方便
所以我们选择专业的软件:数据库管理系统.

数据库管理系统:mysql/ oracle / sqlserver /db2 / access
下面以mysql为例

我们平时开发系统时

  • 创建数据库
  • 创建表结构
    这些需要提前通过MySQL命令创建

但是表中获得数据一般是通过程序实现增删改查的。

案例:员工管理系统

使用mysql创建表格

  • 使用mysql内置工具(命令)
    • 创建数据表:unicom
    • 数据表:admin

表名:admin
列:

id,整型,自增,主键
username 字符串 不为空
password 字符串 不为空
mobile 字符串 不为空

create table admin(
	id int not null auto_increment primary key,  
	username varchar(16) not null,
	password char(64) not null,
	mobile char(11) not null
)default charset=utf8;

python操作mysql

  • python代码实现:
    • 添加用户
    • 删除用户
    • 查看用户
    • 更新用户信息
  • 用python操作mysql需要安装一个插件
    • 在pycharm命令行执行以下内容
pip3 install pymysql

输入数据

  • 程序输入
import pymysql

# 连接mysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="root", charset='utf8', db='bkys')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# # 发送指令
# cursor.execute("insert into admin(username,password,mobile) values('bkys','root123','55555555555')")
# conn.commit()

# # 发送指令(不要用字符串格式化做sql的拼接,安全隐患sql注入)
# sql = "insert into admin(username,password,mobile) values(%s,%s,%s)"
# cursor.execute(sql, ["zhang", "zhang123", "99999999999"])
# conn.commit()

sql = "insert into admin(username,password,mobile) values(%(n1)s,%(n2)s,%(n3)s)"
cursor.execute(sql, {"n1": "zh", "n2": "zhang123456", "n3": "99999999"})
conn.commit()

# 关闭
cursor.close()
conn.close()
  • 终端动态输入
import pymysql

while True:
    user = input("用户名:")
    if user.upper() == "EXIT":
        break
    pwd = input("密码:")
    mobile = input("手机号:")


    # 连接mysql
    conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="root", charset='utf8', db='bkys')
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)


    # 发送指令(不要用字符串格式化做sql的拼接,安全隐患sql注入)
    sql = "insert into admin(username,password,mobile) values(%s,%s,%s)"
    cursor.execute(sql, [user, pwd, mobile])
    conn.commit()

    # 关闭
    cursor.close()
    conn.close()

查询数据

  • 查询所有数据
import pymysql

# 连接mysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="root", charset='utf8', db='bkys')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)


# 发送指令(不要用字符串格式化做sql的拼接,安全隐患sql注入)
cursor.execute("select * from admin")
data_list = cursor.fetchall()
# print(data_list)
for row_dict in data_list:
    print(row_dict)


# 关闭
cursor.close()
conn.close()
  • 获取符合条件第一条数据
import pymysql

# 连接mysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="root", charset='utf8', db='bkys')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 发送指令(不要用字符串格式化做sql的拼接,安全隐患sql注入)
cursor.execute("select * from admin where id > %s", [2, ])
data_list = cursor.fetchone()
print(data_list)

# 关闭
cursor.close()
conn.close()

删除数据

import pymysql

# 连接mysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="root", charset='utf8', db='bkys')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 发送指令(不要用字符串格式化做sql的拼接,安全隐患sql注入)
cursor.execute("delete from admin where  id = %s", [3])
conn.commit()

# 关闭
cursor.close()
conn.close()

修改数据

import pymysql

# 连接mysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="root", charset='utf8', db='bkys')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 发送指令(不要用字符串格式化做sql的拼接,安全隐患sql注入)
cursor.execute("update admin set mobile=%s where id = %s", ["15431",4, ])
conn.commit()

# 关闭
cursor.close()
conn.close()

注意

  • 在进行新增,删除,修改的时候,一定记得commit,否则数据库没有数据。
  • 在查询的时候,不需要commit,执行fetchall /fetchone
  • 对于sql语句不要用python字符串格式化进行拼接,会被sql注入

你可能感兴趣的:(MySQL,python篇,flask,python,前端)