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 développer un système simple de réservation de billets en ligne à l'aide de MySQL et Python

PHPz
PHPzoriginal
2023-09-20 14:37:48733parcourir

Comment développer un système simple de réservation de billets en ligne à laide 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.

  1. Conception de base de données

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) :

  • ticket_id (clé primaire)
  • name (nom du ticket)
  • price (prix du ticket)
  • quantity (quantité du ticket)

User table (utilisateur) :

  • user_id (clé primaire)
  • name (nom d'utilisateur)
  • email (e-mail de l'utilisateur)
  • password (mot de passe de l'utilisateur)

Table de commande (commande) :

  • order_id (clé primaire) )
  • user_id (clé étrangère, table utilisateur associée)
  • ticket_id (clé étrangère, table de ticket associée)
  • quantity (quantité de ticket)
  • total_price (prix total de la commande)
  • order_time (heure de la commande)
  1. Créer base de données et tables

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.

  1. Connectez-vous à 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".

  1. Implémenter les fonctions d'enregistrement et de connexion des utilisateurs

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。

  1. 实现门票预订功能

现在我们来实现在线门票预订功能。以下是一个简单的实现示例:

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

    Implémenter la fonction de réservation de billets
    1. Nous allons maintenant implémenter la fonction de réservation de billets en ligne. Voici un exemple d'implémentation simple :
    # 注册用户
    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. .

    Code de test

    🎜Vous pouvez utiliser le code suivant pour tester la fonction que vous venez d'implémenter : 🎜rrreee🎜Dans l'exemple de code ci-dessus, nous enregistrons d'abord un utilisateur nommé "Zhang San", puis utilisons l'e-mail et le mot de passe de l'utilisateur pour vous connecter, le dernier billet réservé avec l'ID 1 est de 3 billets. 🎜🎜Ce qui précède est une introduction et un exemple de code sur la façon d'utiliser MySQL et Python pour développer un système simple de réservation de billets en ligne. Vous pouvez modifier et étendre le code de manière appropriée en fonction de besoins et de scénarios spécifiques pour obtenir des fonctions plus complètes. 🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn