Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk membangunkan sistem tempahan tiket dalam talian yang mudah menggunakan MySQL dan Python

Bagaimana untuk membangunkan sistem tempahan tiket dalam talian yang mudah menggunakan MySQL dan Python

PHPz
PHPzasal
2023-09-20 14:37:48682semak imbas

Bagaimana untuk membangunkan sistem tempahan tiket dalam talian yang mudah menggunakan MySQL dan Python

Cara menggunakan MySQL dan Python untuk membangunkan sistem tempahan tiket dalam talian yang mudah

Dengan perkembangan pesat Internet, semakin ramai orang Mula menggunakan perkhidmatan dalam talian untuk membeli-belah, membuat tempahan dan banyak lagi. Sistem tempahan tiket dalam talian adalah salah satu senario aplikasi biasa. Artikel ini akan memperkenalkan cara menggunakan MySQL dan Python untuk membangunkan sistem tempahan tiket dalam talian yang mudah dan memberikan contoh kod khusus.

  1. Reka bentuk pangkalan data

Pertama sekali, kita perlu mereka bentuk pangkalan data untuk menyimpan maklumat tiket, maklumat pengguna dan maklumat pesanan. Berikut ialah contoh reka bentuk pangkalan data yang mudah:

Jadual tiket (tiket):

  • ticket_id (kunci utama)
  • nama ( Nama tiket)
  • harga (harga tiket)
  • kuantiti (kuantiti tiket)

Jadual pengguna (pengguna): #🎜🎜 #

    user_id (kunci utama)
  • nama (nama pengguna)
  • e-mel (e-mel pengguna)
  • #🎜 (🎜 kata laluan pengguna )
  • Jadual pesanan (pesanan):

order_id (primary key)
    #🎜🎜 (fore#ign user_id , Jadual pengguna yang berkaitan)
  • ticket_id (kunci asing, jadual tiket berkaitan)
  • kuantiti (kuantiti tiket)
  • total_price)# (jumlah harga pesanan)# 🎜🎜#
  • order_time (masa pesanan)
  • Buat pangkalan data dan jadual
#🎜Use alatan MySQL seperti MySQL line atau MySQL Workbench Cipta pangkalan data bernama "ticket_booking", dan kemudian buat tiga jadual di atas dalam pangkalan data.
  1. Sambung ke pangkalan data

Dalam kod Python, kita perlu menggunakan MySQL untuk menyambung ke pangkalan data. Mula-mula, kita perlu memasang pemacu MySQL untuk Python, yang boleh dipasang menggunakan arahan pip:
    pip install mysql-connector-python
  1. Kemudian, sambung ke pangkalan data MySQL melalui kod berikut:
  2. import mysql.connector
    
    # 创建数据库连接
    mydb = mysql.connector.connect(
      host="localhost",
      user="username",
      password="password",
      database="ticket_booking"
    )
    
    # 创建游标对象
    cursor = mydb.cursor()
    #🎜🎜 # Dalam kod, Anda perlu menggantikan "nama pengguna" dan "kata laluan" dengan nama pengguna dan kata laluan pangkalan data MySQL anda. Kod ini akan disambungkan ke pangkalan data bernama "tempahan_tiket".

Laksanakan fungsi pendaftaran dan log masuk pengguna

Untuk membolehkan pengguna menggunakan sistem, kita perlu melaksanakan fungsi pendaftaran dan log masuk pengguna. Berikut ialah contoh kod mudah:

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
    Dalam kod di atas, fungsi register_user memasukkan maklumat pendaftaran pengguna ke dalam pangkalan data dan mengembalikan True selepas pendaftaran login_user mengesahkan sama ada e-mel dan kata laluan pengguna adalah betul dan mengembalikan ID pengguna. <li><ol start="5"></ol></li>Laksanakan fungsi tempahan tiket

Sekarang mari kita laksanakan fungsi tempahan tiket dalam talian. Berikut ialah contoh pelaksanaan yang mudah:

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
register_user函数将用户注册信息插入数据库,并在注册成功后返回True;login_user函数则验证用户邮箱和密码是否正确,并返回用户ID。

  1. 实现门票预订功能

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

# 注册用户
register_user("张三", "zhangsan@gmail.com", "123456")

# 用户登录
user_id = login_user("zhangsan@gmail.com", "123456")

# 预订门票
book_ticket(user_id, 1, 3)

以上代码中,book_ticketDalam kod di atas, fungsi book_ticket mula-mula menyemak sama ada bilangan tiket adalah mencukupi, kemudian mengira jumlah harga pesanan dan sisipan maklumat pesanan ke dalam pangkalan data.

  1. Kod ujian

Anda boleh menggunakan kod berikut untuk menguji fungsi yang baru anda laksanakan:

rrreee

In kod contoh di atas, kami mula-mula mendaftarkan pengguna bernama "Zhang San", kemudian log masuk menggunakan e-mel dan kata laluan pengguna, dan akhirnya menempah 3 tiket dengan ID 1.

Di atas ialah pengenalan dan contoh kod tentang cara menggunakan MySQL dan Python untuk membangunkan sistem tempahan tiket dalam talian yang mudah. Anda boleh mengubah suai dan melanjutkan kod dengan sewajarnya mengikut keperluan dan senario khusus untuk mencapai fungsi yang lebih lengkap.

Atas ialah kandungan terperinci Bagaimana untuk membangunkan sistem tempahan tiket dalam talian yang mudah menggunakan MySQL dan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn