conn = pymysql.connect(host='localhost', user='root', password='123456', charset='utf8') cursor = conn.cursor() # 创建数据库和表 cursor.execute('create database if not exists wyyc;') cursor.execute('use wyyc;') create_Tb = 'create table if not exists sj(地址 varchar(100),标题 varchar(100),播放量 varchar(100),作者 varchar(100));' cursor.execute(create_Tb)优化这段代码
时间: 2023-11-29 15:04:40 浏览: 119
1. 将数据库连接和游标创建的代码封装成一个函数,方便调用和复用。
2. 将数据库连接的参数放在配置文件中,提高代码的灵活性和安全性。
3. 在创建表时,可以为每个字段增加数据类型和约束,例如地址字段可以设置为CHAR(100),并且设置NOT NULL约束,避免插入空值或超过长度的数据。
改进后的代码如下:
```
import pymysql
import configparser
def get_db_conn():
# 读取配置文件中的数据库连接参数
config = configparser.ConfigParser()
config.read('config.ini')
host = config.get('database', 'host')
user = config.get('database', 'user')
password = config.get('database', 'password')
charset = config.get('database', 'charset')
# 创建数据库连接和游标
conn = pymysql.connect(host=host, user=user, password=password, charset=charset)
cursor = conn.cursor()
return conn, cursor
def create_table():
# 获取数据库连接和游标
conn, cursor = get_db_conn()
# 创建数据库和表
cursor.execute('create database if not exists wyyc;')
cursor.execute('use wyyc;')
create_Tb = '''
create table if not exists sj(
地址 CHAR(100) NOT NULL,
标题 CHAR(100) NOT NULL,
播放量 CHAR(100) NOT NULL,
作者 CHAR(100) NOT NULL
);
'''
cursor.execute(create_Tb)
# 提交并关闭连接
conn.commit()
conn.close()
if __name__ == '__main__':
create_table()
```
需要注意的是,上述代码中的配置文件(config.ini)需要自行创建,并且在其中添加如下内容:
```
[database]
host=localhost
user=root
password=123456
charset=utf8
```
阅读全文