How to use MySQL and Python to develop a simple online ticket booking system
With the rapid development of the Internet, more and more people are beginning to use online services. Shopping, booking and more. Online ticket booking system is one of the common application scenarios. This article will introduce how to use MySQL and Python to develop a simple online ticket booking system and provide specific code examples.
First, we need to design a database to store ticket information, user information and order information. The following is a simple database design example:
Ticket table (ticket):
User table (user):
Order form (order):
Use MySQL command line or Tools such as MySQL Workbench create a database named "ticket_booking", and then create the above three tables in the database.
In the Python code, we need to use MySQL to connect to the database. First, we need to install the MySQL driver for Python, which can be installed using the pip command:
pip install mysql-connector-python
Then, connect to the MySQL database through the following code:
import mysql.connector # 创建数据库连接 mydb = mysql.connector.connect( host="localhost", user="username", password="password", database="ticket_booking" ) # 创建游标对象 cursor = mydb.cursor()
In the code, you need to " Replace "username" and "password" with your MySQL database username and password. This code will connect to the database named "ticket_booking".
In order for users to use the system, we need to implement user registration and login functions. The following is a simple sample code:
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
In the above code, the register_user
function inserts user registration information into the database and returns True after successful registration; the login_user
function Then verify whether the user's email and password are correct, and return the user ID.
Now we will implement the online ticket booking function. The following is a simple implementation example:
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
In the above code, the book_ticket
function first checks whether the number of tickets is sufficient, then calculates the total order price and inserts the order information into the database.
You can use the following code to test the function just implemented:
# 注册用户 register_user("张三", "zhangsan@gmail.com", "123456") # 用户登录 user_id = login_user("zhangsan@gmail.com", "123456") # 预订门票 book_ticket(user_id, 1, 3)
In the above example code, we first register a file named " Zhang San" user, then use the user's email and password to log in, and finally reserve 3 tickets with ID 1.
The above is an introduction and code example on how to use MySQL and Python to develop a simple online ticket booking system. You can modify and extend the code appropriately according to specific needs and scenarios to achieve more complete functions.
The above is the detailed content of How to develop a simple online ticket booking system using MySQL and Python. For more information, please follow other related articles on the PHP Chinese website!