如何利用MySQL和Python開發一個簡單的線上票券預訂系統
隨著網路的快速發展,越來越多的人開始使用線上服務進行購物、預訂等活動。線上門票預訂系統是其中常見的應用場景。本文將介紹如何使用MySQL和Python來開發一個簡單的線上票券預訂系統,並提供具體的程式碼範例。
首先,我們需要設計一個資料庫來儲存門票資訊、使用者資訊和訂單資訊。以下是一個簡單的資料庫設計範例:
票務表(ticket):
使用者表(user):
pip install mysql-connector-python
import mysql.connector # 创建数据库连接 mydb = mysql.connector.connect( host="localhost", user="username", password="password", database="ticket_booking" ) # 创建游标对象 cursor = mydb.cursor()
def register_user(name, email, password): # 检查邮箱是否已被注册 cursor.execute("SELECT * FROM user WHERE email = %s", (email,)) if cursor.fetchone() is not None: print("该邮箱已被注册!") return False # 将用户信息插入数据库 cursor.execute("INSERT INTO user (name, email, password) VALUES (%s, %s, %s)", (name, email, password)) mydb.commit() print("用户注册成功!") return True def login_user(email, password): # 查询用户信息 cursor.execute("SELECT user_id FROM user WHERE email = %s AND password = %s", (email, password)) user = cursor.fetchone() if user is not None: print("用户登录成功!") return user[0] print("邮箱或密码错误!") return None
register_user函數將使用者註冊資訊插入資料庫,並在註冊成功後傳回True;
login_user函數則驗證使用者信箱和密碼是否正確,並傳回使用者ID。
def book_ticket(user_id, ticket_id, quantity): # 检查门票数量是否足够 cursor.execute("SELECT quantity FROM ticket WHERE ticket_id = %s", (ticket_id,)) ticket_quantity = cursor.fetchone()[0] if ticket_quantity < quantity: print("门票数量不足,请重新选择!") return False # 计算订单总价 cursor.execute("SELECT price FROM ticket WHERE ticket_id = %s", (ticket_id,)) ticket_price = cursor.fetchone()[0] total_price = ticket_price * quantity # 创建订单 cursor.execute("INSERT INTO `order` (user_id, ticket_id, quantity, total_price) VALUES (%s, %s, %s, %s)", (user_id, ticket_id, quantity, total_price)) mydb.commit() print("订单创建成功!") return True
book_ticket函數首先檢查門票數量是否足夠,然後計算訂單總價並將訂單資訊插入資料庫。
# 注册用户 register_user("张三", "zhangsan@gmail.com", "123456") # 用户登录 user_id = login_user("zhangsan@gmail.com", "123456") # 预订门票 book_ticket(user_id, 1, 3)
以上是如何利用MySQL和Python開發一個簡單的線上票券預訂系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!