欢迎访问宙启技术站
智能推送

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"(用户登录成功)。