写在前面
项目详细需求参见:Django项目之【学员管理系统】
优化实现
把操作封装成函数
我们之前使用pymysql操作数据库的操作都是写死在视图函数中的,并且很多都是重复的代码。
我们可以优化一下,把重复的代码提取出来,写成函数:
import pymysql # 定义一个数据库相关的配置项 DB_CONFIG = { "host": "127.0.0.1", "port": 3306, "user": "root", "passwd": "root1234", "db": "mysite", "charset": "utf8" } # 查询多条数据函数 def get_list(sql, args=None): conn = pymysql.connect( host=DB_CONFIG["host"], port=DB_CONFIG["port"], user=DB_CONFIG["user"], passwd=DB_CONFIG["passwd"], db=DB_CONFIG["db"], charset=DB_CONFIG["charset"] ) cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) cursor.execute(sql, args) result = cursor.fetchall() cursor.close() conn.close() return result # 查询单挑数据函数 def get_one(sql, args=None): conn = pymysql.connect( host=DB_CONFIG["host"], port=DB_CONFIG["port"], user=DB_CONFIG["user"], passwd=DB_CONFIG["passwd"], db=DB_CONFIG["db"], charset=DB_CONFIG["charset"] ) cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) cursor.execute(sql, args) result = cursor.fetchone() cursor.close() conn.close() return result # 修改记录 def modify(sql, args=None): conn = pymysql.connect( host=DB_CONFIG["host"], port=DB_CONFIG["port"], user=DB_CONFIG["user"], passwd=DB_CONFIG["passwd"], db=DB_CONFIG["db"], charset=DB_CONFIG["charset"] ) cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) cursor.execute(sql, args) conn.commit() cursor.close() conn.close() # 创建记录 def create(sql, args=None): conn = pymysql.connect( host=DB_CONFIG["host"], port=DB_CONFIG["port"], user=DB_CONFIG["user"], passwd=DB_CONFIG["passwd"], db=DB_CONFIG["db"], charset=DB_CONFIG["charset"] ) cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) cursor.execute(sql, args) conn.commit() # 返回刚才创建的那条数据的ID last_id = cursor.lastrowid cursor.close() conn.close() return last_id