11.3 模块化开发

每次要执行sql语句,必须先连接,然后再关闭连接。如果每次操作都复制连接的那段代码,等到代码要维护的时候(例如修改了数据库名、改了密码,修改地址),那就麻烦了。所以通常都把数据库相关函数放在一个文件。
下面是sql.py(此文件名是自定义的)文件的部分代码:
import pymysql
def get_conn():
    conn = pymysql.connect(host="localhost", port=3306, user='root', password="123456", database="db")
    return conn
def find_user(username):
    conn = get_conn()
    cursor = conn.cursor()
    sql1 = "select * from user where username=%s"
    cursor.execute(sql1, username)
    result = cursor.fetchone()
    
    conn.close() #关闭连接
    return result
数据库连接现在由get_conn函数来负责,find_user函数的功能是根据用户名查询用户,它内部就使用了get_conn函数取得连接,然后在最后(第17行代码),关闭了连接。
如果另外一个文件需要使用到find_user函数,那么是这样使用的:
import sql
result = sql.find_user(username)
import sql就是导入sql.py文件,然后就可以使用sql.py文件里的所有函数。
find_user函数可以查询下面的表格:
根据username查询用户。

下面是使用sqlalchemy
from sqlalchemy import create_engine
engine = create_engine("mysql+pymysql://root:123456@localhost:3306/db?charset=utf8")
con = engine.connect()
username='abcd'
query = f"SELECT * select * from user where username='{username}'"
result = con.execute(query)
print(result)