import sqlite3 # 创建数据库连接 conn = sqlite3.connect('library.db') # 创建books表 conn.execute('''CREATE TABLE books (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AUTHOR TEXT NOT NULL, PRICE REAL NOT NULL, REMARK TEXT);''') # 创建users表 conn.execute('''CREATE TABLE users (ID INT PRIMARY KEY NOT NULL, USERNAME TEXT NOT NULL, PASSWORD TEXT NOT NULL, TYPE TEXT NOT NULL);''') # 创建borrows表 conn.execute('''CREATE TABLE borrows (ID INT PRIMARY KEY NOT NULL, USER_ID INT NOT NULL, BOOK_ID INT NOT NULL, BORROW_DATE TEXT NOT NULL, RETURN_DATE TEXT, STATUS TEXT);''') # 关闭数据库连接 conn.close()
时间: 2024-02-10 16:09:54 浏览: 66
这段代码是用来创建一个名为 "library.db" 的 SQLite 数据库,并向其添加三个表:books、users 和 borrows。其中 books 表包含 ID、NAME、AUTHOR、PRICE 和 REMARK 五个字段,users 表包含 ID、USERNAME、PASSWORD 和 TYPE 四个字段,borrows 表包含 ID、USER_ID、BOOK_ID、BORROW_DATE、RETURN_DATE 和 STATUS 六个字段。这些表可以用于图书馆管理系统中,用来记录图书、用户和借阅信息。最后,通过 conn.close() 关闭了数据库连接。
相关问题
import sqlite3def create_table(): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''CREATE TABLE IF NOT EXISTS customers (id INTEGER PRIMARY KEY, name TEXT, age INTEGER, gender TEXT, balance INTEGER)''') c.execute('''CREATE TABLE IF NOT EXISTS computers (id INTEGER PRIMARY KEY, brand TEXT, model TEXT, status TEXT)''') conn.commit() conn.close()def add_customer(name, age, gender, balance): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''INSERT INTO customers(name, age, gender, balance) VALUES (?, ?, ?, ?)''', (name, age, gender, balance)) conn.commit() conn.close()def get_customers(): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''SELECT * FROM customers''') customers = c.fetchall() conn.close() return customersdef delete_customer(customer_id): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''DELETE FROM customers WHERE id=?''', (customer_id,)) conn.commit() conn.close()def add_computer(brand, model, status): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''INSERT INTO computers(brand, model, status) VALUES (?, ?, ?)''', (brand, model, status)) conn.commit() conn.close()def get_computers(): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''SELECT * FROM computers''') computers = c.fetchall() conn.close() return computersdef delete_computer(computer_id): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''DELETE FROM computers WHERE id=?''', (computer_id,)) conn.commit() conn.close()if __name__ == '__main__': create_table()
这是一个Python程序,用于创建和管理一个名为cybercafe.db的SQLite数据库,其中包含两个表:customers和computers。下面是各个函数的功能:
- create_table(): 创建两个表,如果它们不存在。
- add_customer(name, age, gender, balance): 向customers表中添加一行,包含一个姓名、年龄、性别和余额字段。
- get_customers(): 获取customers表中的所有行。
- delete_customer(customer_id): 从customers表中删除指定id的行。
- add_computer(brand, model, status): 向computers表中添加一行,包含品牌、型号和状态字段。
- get_computers(): 获取computers表中的所有行。
- delete_computer(computer_id): 从computers表中删除指定id的行。
如果这个程序被当做主程序运行,它会调用create_table()函数来创建表。
import cv2 import socket import numpy as np import struct import sqlite3 from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes from cryptography.hazmat.primitives import padding from cryptography.hazmat.backends import default_backend key = b'0123456789abcdef0123456789abcdef' iv = b'0123456789abcdef' # 连接到数据库 conn = sqlite3.connect('video.db') cursor = conn.cursor() # 创建videos表 cursor.execute("CREATE TABLE IF NOT EXISTS videos (id INTEGER PRIMARY KEY, path TEXT)") path = 'M:/img/xinxixitong.avi' fourcc = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter(path, fourcc, 30, (640, 480)) # 解密函数 def dt_f(ciphertext, key, iv): # 创建 AES 解密器 dt = Cipher(algorithms.AES(key), modes.CBC(iv), backend=default_backend()).decryptor() # 解密图像 padded_data = dt.update(ciphertext) + dt.finalize() # 移除填充 unpadder = padding.PKCS7(128).unpadder() unpadded_data = unpadder.update(padded_data) + unpadder.finalize() return unpadded_data # 服务端IP和端口号 HOST = '0.0.0.0' # 任意IP地址 PORT = 6666 # 创建套接字对象 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sk: sk.bind((HOST, PORT)) sk.listen(5) print('等待连接...') # 接受连接请求 client_conn, addr = sk.accept() with client_conn: print('与', addr,'相连接') data_buffer = b'' # 缓存数据 while True: data = client_conn.recv(6) #如果没有数据传输则停止 if not data: break size = struct.unpack('!I', data)[0] # 接收到的帧数据 data = b'' while len(data) < size: packet = client_conn.recv(size - len(data)) if not packet: break data += packet # 解密帧 dted_f = dt_f(data, key, iv) # data_buffer += dt_f # 添加到缓存中 # 将解密后的 bytes 数据转换为图像帧 dted_f = np.frombuffer(dted_f, dtype=np.uint8).reshape(480, 640, 3) # 显示解密后的帧 cv2.imshow("2021218000_dted_Server", dted_f) out.write(dted_f) if cv2.waitKey(1) in [ord('q'),27]: out.release() break cursor.execute('INSERT INTO videos (path) VALUES (?)', (path,)) conn.commit() conn.close() cv2.destroyAllWindows()
这段代码是一个 Python 代码,看起来是一个视频传输的服务端程序,使用了 OpenCV 库处理图像数据,使用了 socket 库进行网络传输,使用了 cryptography 库进行 AES 解密。程序将接收到的加密帧解密后显示出来,并将解密后的帧写入本地文件,最后将文件路径保存到 SQLite 数据库中。
阅读全文