config()函数与数据库连接配置的综合应用案例
发布时间:2023-12-27 14:12:28
下面是一个使用config()函数与数据库连接配置的综合应用案例,包括具体的使用示例。
案例:用户注册与登录系统
1. 创建数据库
首先,需要创建一个名为"users"的数据库,其中包含一个名为"users_table"的表,表中包含以下字段:
- id: 用户ID
- username: 用户名
- password: 密码
2. 配置文件
创建一个名为"config.ini"的配置文件,配置文件的内容如下:
[mysql] host = localhost database = users user = your_username password = your_password
将"your_username"和"your_password"替换为正确的数据库用户名和密码。
3. Python代码
# 导入所需的模块
import mysql.connector
from mysql.connector import Error
from configparser import ConfigParser
# 从配置文件中读取数据库连接配置
def read_db_config(filename='config.ini', section='mysql'):
# 创建一个解析器对象
parser = ConfigParser()
# 读取配置文件
parser.read(filename)
# 获取mysql配置项的参数值
db_params = {}
if parser.has_section(section):
items = parser.items(section)
for item in items:
db_params[item[0]] = item[1]
else:
raise Exception('{0} not found in the {1} file'.format(section, filename))
return db_params
# 连接数据库
def connect():
db_params = read_db_config()
try:
# 创建一个数据库连接对象
conn = mysql.connector.connect(**db_params)
if conn.is_connected():
print('Connected to MySQL database')
return conn
except Error as e:
print(e)
# 用户注册
def register(conn, username, password):
try:
cursor = conn.cursor()
# 执行插入语句
sql = "INSERT INTO users_table (username, password) VALUES (%s, %s)"
values = (username, password)
cursor.execute(sql, values)
# 提交事务
conn.commit()
# 提示注册成功
print("User registered successfully")
except Error as e:
print(e)
# 用户登录
def login(conn, username, password):
try:
cursor = conn.cursor()
# 执行查询语句
sql = "SELECT * FROM users_table WHERE username = %s AND password = %s"
values = (username, password)
cursor.execute(sql, values)
# 获取查询结果
result = cursor.fetchall()
if result:
print("Login successful")
else:
print("Invalid username or password")
except Error as e:
print(e)
# 主函数
if __name__ == '__main__':
# 连接数据库
conn = connect()
# 用户注册
register(conn, "John", "password123")
# 用户登录
login(conn, "John", "password123")
# 关闭数据库连接
conn.close()
在上面的示例中,首先加载配置文件"config.ini"中的数据库连接配置,然后使用连接配置与数据库建立连接。
接下来,定义了register()和login()两个函数,分别用于用户的注册和登录操作。register()函数将用户名和密码插入数据库中,而login()函数则根据用户输入的用户名和密码进行查询,并返回登录结果。
最后,通过调用connect()函数连接数据库,然后依次调用register()和login()函数进行用户注册和登录操作。
运行以上代码,可以看到输出的信息包括"Connected to MySQL database"(成功连接到数据库)、「User registered successfully」(用户注册成功)以及"Login successful"(用户登录成功)。
