您的位置:首页 > 科技 > 能源 > 网络品牌推广费用_综合性电子商务网站有哪些_国外搜索引擎大全_百度云盘下载

网络品牌推广费用_综合性电子商务网站有哪些_国外搜索引擎大全_百度云盘下载

2024/12/23 16:31:38 来源:https://blog.csdn.net/zhouA0221/article/details/143194653  浏览:    关键词:网络品牌推广费用_综合性电子商务网站有哪些_国外搜索引擎大全_百度云盘下载
网络品牌推广费用_综合性电子商务网站有哪些_国外搜索引擎大全_百度云盘下载

介绍

数据库系统是由数据库及其管理软件组成的系统。数据库系统是为适合数据处理的需要而发展起来的一种较为理想的数据处理系统,它包含数据库、数据库管理系统和数据库管理员。数据库洗头膏主要组成部分包括:

数据库:存储数据的容器,可以是关系型数据库或者非关系型数据库

数据库管理系统:负责创建、维护和管理数据库的软件、包含数据定义语言、数据操作语言和数据控制语言。

数据库管理员:负责创建、监控和维护整个数据库、确保数据的安全和完整性。

1、需求分析

数据库连接与管理:

能够连接到指定名称的 SQLite 数据库,如果数据库不存在则自动创建。

提供一种方便的方式管理数据库连接,确保连接的高效性和稳定性。

数据表创建:

当程序首次运行或在特定情况下,能够创建名为 “users” 的数据表,该表包含三个字段:id(整数类型,作为主键且自动递增)、name(文本类型,不能为空)和 age(整数类型)。

数据插入:允许用户向 “users” 表中插入新的数据记录,需要提供用户的姓名和年龄作为参数。插入操作应确保数据的完整性和正确性,例如,确保姓名不为空值,年龄为合法的整数。

数据删除:根据指定的用户 ID,能够从 “users” 表中删除相应的数据记录。

提供一种安全的删除方式,避免误删数据。

数据更新:可以根据用户 ID 更新特定用户的信息,包括姓名和年龄。

用户可以选择只更新姓名、只更新年龄或者同时更新两者。

更新操作应确保数据的一致性和准确性。

数据查询:能够查询 “users” 表中的所有数据记录,以便用户查看整个用户列表。也可以根据指定的用户 ID 进行精确查询,获取特定用户的详细信息。

2、技术简介

sqlite3是 Python 标准库中的一个模块,用于与 SQLite 数据库进行交互。sqlite3库提供了一种简单而有效的方式来操作 SQLite 数据库,适用于小型到中型规模的应用程序,特别是那些不需要复杂数据库管理系统的场景。

3、开发环境配置

使用Windows操作系统,python语言PyCharm安装 Python 解释器。

4、详细设计

数据库连接模块

connect_database函数:功能:连接到 SQLite 数据库,如果数据库不存在则创建。

def connect_database(db_name='example.db'):  """连接到SQLite数据库,如果数据库不存在则创建"""  conn = sqlite3.connect(db_name)  return conn

 该函数接收一个数据库文件名作为参数(默认为example.db),使用sqlite3.connect()方法创建一个数据库连接对象conn,并将其返回。如果指定的数据库文件不存在,sqlite3.connect()会自动创建一个新的数据库文件。

数据表创建模块

create_table函数:create_table函数。

 def create_table(conn):  """创建数据表(如果尚不存在)"""  cursor = conn.cursor()  cursor.execute('''  CREATE TABLE IF NOT EXISTS users (  id INTEGER PRIMARY KEY AUTOINCREMENT,  name TEXT NOT NULL,  age INTEGER  )  ''')  conn.commit()

该函数接收一个数据库连接对象conn,通过该连接获取一个游标对象cursor。然后使用游标执行 SQL 创建表的语句,创建一个名为users的表,包含id(整数类型,主键且自动递增)、name(文本类型,不能为空)和age(整数类型)三个字段。最后使用conn.commit()提交事务,确保表创建操作被永久保存到数据库中。

数据插入模块

insert_data函数:向表中插入数据。

 def insert_data(conn, name, age):  """向表中插入数据"""  cursor = conn.cursor()  cursor.execute("INSERT INTO users (name, age) VALUES (?,?)", (name, age))  conn.commit()

 该函数接收一个数据库连接对象conn、用户姓名name和年龄age作为参数。通过连接获取游标后,使用游标执行插入数据的 SQL 语句,将姓名和年龄插入到users表中。最后提交事务以保存插入的数据。

数据删除模块

delete_data函数:根据 ID 删除数据。

def delete_data(conn, user_id):  """根据ID删除数据"""  cursor = conn.cursor()  cursor.execute("DELETE FROM users WHERE id=?", (user_id,))  conn.commit()

 该函数接收一个数据库连接对象conn和用户 IDuser_id作为参数。通过连接获取游标后,使用游标执行删除数据的 SQL 语句,根据指定的用户 ID 从users表中删除相应的记录。最后提交事务以确保删除操作生效。

数据更新模块

update_data函数:更新数据(可以更新姓名或年龄或两者)。

  def update_data(conn, user_id, name=None, age=None):  """更新数据(可以更新姓名或年龄或两者)"""  updates = []  params = [user_id]  if name is not None:  updates.append("name =?")  params.append(name)  if age is not None:  updates.append("age =?")  params.append(age)  if updates:  sql = f"UPDATE users SET {', '.join(updates)} WHERE id =?"  cursor = conn.cursor()  cursor.execute(sql, tuple(params))  conn.commit()

 该函数接收一个数据库连接对象conn、用户 IDuser_id以及可选的姓名name和年龄age作为参数。首先创建一个空列表updates和一个参数列表params,并将用户 ID 添加到参数列表中。然后根据传入的姓名和年龄参数,分别将对应的更新语句添加到updates列表中,并将相应的值添加到参数列表中。

数据查询模块

query_data函数:查询数据,可以查询所有或根据 ID 查询。

def query_data(conn, user_id=None):  """查询数据,可以查询所有或根据ID查询"""  cursor = conn.cursor()  if user_id:  cursor.execute("SELECT * FROM users WHERE id =?", (user_id,))  else:  cursor.execute("SELECT * FROM users")  return cursor.fetchall()

该函数接收一个数据库连接对象conn和可选的用户 IDuser_id作为参数。通过连接获取游标后,根据是否传入用户 ID 执行不同的查询 SQL 语句。如果传入了用户 ID,则查询指定 ID 的用户记录;如果没有传入用户 ID,则查询所有用户记录。最后使用cursor.fetchall()返回查询结果。

数据显示模块

display_data函数:显示查询结果。

def display_data(data):  """显示查询结果"""  for row in data:  print(row)

 该函数接收一个查询结果数据data,遍历该数据并打印每一行记录,以便用户查看查询结果。

主程序模块代码:

main函数:作为程序的入口点,协调各个数据库操作函数的调用顺序,实现数据的插入、更新、删除和查询等操作,并展示结果。

def main():  # 连接到数据库  conn = db.connect_database()  # 创建数据表  db.create_table(conn)  # 向表中插入数据  db.insert_data(conn, 'Alice', 30)  db.insert_data(conn, 'Bob', 25)  # 查询并显示所有数据  print("查询所有数据:")  data = db.query_data(conn)  for row in data:  print(row)  # 更新数据  db.update_data(conn, 2, age=26)  # 再次查询并显示数据  print("\n更新后查询所有数据:")  data = db.query_data(conn)  for row in data:  print(row)  # 根据ID删除数据  db.delete_data(conn, 1)  # 最后一次查询并显示数据  print("\n删除后查询所有数据:")  data = db.query_data(conn)  for row in data:  print(row)  # 关闭数据库连接  conn.close()

该函数首先连接到数据库,创建数据表,然后插入两条用户数据。接着查询并显示所有数据,更新特定用户的数据,再次查询并显示数据,删除特定用户的数据,最后再次查询并显示数据。在每个操作后,通过调用db.query_data()获取查询结果,并使用for循环遍历结果集,调用print(row)打印每一行数据。最后关闭数据库连接以释放资源。

if __name__ == "__main__":语句:确if __name__ == "__main__":  main()

保当脚本直接运行时才执行main函数,避免在被其他模块导入时自动执行。

当 Python 解释器运行脚本时,如果脚本是作为主程序运行(而不是被导入为模块),则__name__变量的值为__main__。在这种情况下,main函数将被调用,从而启动整个程序的执行流程。

5、软件测试

 

数据库连接和表创建:

首先,代码成功连接到指定的 SQLite 数据库(如果不存在则创建),并创建了users表。这可以通过观察代码执行过程中没有出现数据库连接错误和表创建失败的异常来确定。

可以使用数据库管理工具(如 SQLiteStudio)打开数据库文件,确认表是否正确创建,以及表结构是否符合预期。

数据插入:

代码成功地向users表中插入了两条用户数据('Alice', 30)和('Bob', 25)。这可以从第一次查询所有数据的输出中得到验证。

数据更新:

通过指定用户 ID 更新了用户 'Bob' 的年龄为 26,再次查询所有数据时,可以看到 'Bob' 的年龄已经更新,说明更新操作成功。

数据删除:

根据用户 ID 删除了用户 'Alice' 的记录,最后一次查询所有数据时,只有用户 'Bob' 的记录存在,证明删除操作成功。

不足之处:

代码中没有对可能出现的错误进行充分的处理。例如,如果数据库连接失败、SQL 语句执行错误或者参数传递不正确,程序可能会崩溃而没有给出明确的错误信息。

可以添加一些错误处理代码,如使用try-except块来捕获异常,并在出现错误时打印出详细的错误信息,以便于调试。

代码中没有对可能出现的错误进行充分的处理。例如,如果数据库连接失败、SQL 语句执行错误或者参数传递不正确,程序可能会崩溃而没有给出明确的错误信息。

可以添加一些错误处理代码,如使用try-except块来捕获异常,并在出现错误时打印出详细的错误信息,以便于调试。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com