Maison >base de données >tutoriel mysql >Comment développer un système simple de réservation de billets en ligne à l'aide de MySQL et Python
Comment utiliser MySQL et Python pour développer un système simple de réservation de billets en ligne
Avec le développement rapide d'Internet, de plus en plus de personnes commencent à utiliser les services en ligne pour faire du shopping, réserver et autres activités. Le système de réservation de billets en ligne est l'un des scénarios d'application courants. Cet article expliquera comment utiliser MySQL et Python pour développer un système simple de réservation de billets en ligne et fournira des exemples de code spécifiques.
Tout d'abord, nous devons concevoir une base de données pour stocker les informations sur les billets, les informations sur les utilisateurs et les informations sur les commandes. Voici un exemple simple de conception de base de données :
Ticket table (ticket) :
User table (utilisateur) :
Table de commande (commande) :
Utilisez des outils tels que la ligne de commande MySQL ou MySQL Workbench pour créer une base de données nommée "ticket_booking", puis créez les trois tables ci-dessus dans la base de données.
Dans le code Python, nous devons nous connecter à la base de données en utilisant MySQL. Tout d'abord, nous devons installer le pilote MySQL pour Python, qui peut être installé à l'aide de la commande pip :
pip install mysql-connector-python
Ensuite, connectez-vous à la base de données MySQL via le code suivant :
import mysql.connector # 创建数据库连接 mydb = mysql.connector.connect( host="localhost", user="username", password="password", database="ticket_booking" ) # 创建游标对象 cursor = mydb.cursor()
Dans le code, vous devez remplacer "username" et "mot de passe" avec le nom d'utilisateur et le mot de passe de votre base de données MySQL. Ce code se connectera à une base de données nommée "ticket_booking".
Pour que les utilisateurs puissent utiliser le système, nous devons implémenter les fonctions d'enregistrement et de connexion des utilisateurs. Voici un exemple de code simple :
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
Dans le code ci-dessus, la fonction register_user
insère les informations d'enregistrement de l'utilisateur dans la base de données et renvoie True après une inscription réussie ; vérifie Vérifiez si l'e-mail et le mot de passe de l'utilisateur sont corrects et renvoyez l'ID utilisateur. 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)
Dans le code ci-dessus, la fonction book_ticket
vérifie d'abord si le nombre de billets est suffisant, puis calcule le prix total de la commande et insère les informations de commande dans la base de données. .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!