python实现机票订购系统代码
时间: 2023-08-06 19:04:42 浏览: 173
实现机票订购系统需要用到多个Python库,包括但不限于Flask、Django、SQLAlchemy等,具体实现方式也因项目不同而异。以下是一个简单的机票订购系统代码示例,以Flask为例:
```python
from flask import Flask, render_template, request, redirect, url_for
from datetime import datetime
from sqlalchemy import create_engine, Column, Integer, String, DateTime, ForeignKey
from sqlalchemy.orm import sessionmaker, relationship
from sqlalchemy.ext.declarative import declarative_base
app = Flask(__name__)
engine = create_engine('sqlite:///flight.db', echo=True)
Base = declarative_base()
Session = sessionmaker(bind=engine)
session = Session()
# 定义机票信息表
class Flight(Base):
__tablename__ = 'flight'
id = Column(Integer, primary_key=True)
flight_no = Column(String)
departure = Column(String)
destination = Column(String)
departure_time = Column(DateTime)
arrival_time = Column(DateTime)
price = Column(Integer)
# 定义订单信息表
class Order(Base):
__tablename__ = 'order'
id = Column(Integer, primary_key=True)
flight_id = Column(Integer, ForeignKey('flight.id'))
user_name = Column(String)
user_phone = Column(String)
user_email = Column(String)
create_time = Column(DateTime, default=datetime.now)
flight = relationship('Flight', backref='orders')
# 定义用户信息表
class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True)
name = Column(String)
email = Column(String)
password = Column(String)
# 首页
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
departure = request.form['departure']
destination = request.form['destination']
departure_time = datetime.strptime(request.form['departure_time'], '%Y-%m-%d %H:%M:%S')
flights = session.query(Flight).filter(
Flight.departure == departure,
Flight.destination == destination,
Flight.departure_time >= departure_time
).all()
return render_template('flight_list.html', flights=flights)
return render_template('index.html')
# 机票列表页
@app.route('/flight_list')
def flight_list():
flight_id = request.args['flight_id']
flight = session.query(Flight).get(flight_id)
return render_template('order.html', flight=flight)
# 订单页
@app.route('/order', methods=['POST'])
def order():
flight_id = request.form['flight_id']
user_name = request.form['user_name']
user_phone = request.form['user_phone']
user_email = request.form['user_email']
flight = session.query(Flight).get(flight_id)
order = Order(flight=flight, user_name=user_name, user_phone=user_phone, user_email=user_email)
session.add(order)
session.commit()
return redirect(url_for('success'))
# 订单成功页
@app.route('/success')
def success():
return render_template('success.html')
if __name__ == '__main__':
Base.metadata.create_all(engine)
app.run(debug=True)
```
以上代码仅为示例,实现机票订购系统需要根据具体需求进行更改和完善。