示例#1
0
def search():

    if not session.get('email'):
        return redirect('/cus/login')

    arrival_airport = request.form['arrival_airport']
    departure_airport = request.form['departure_airport']
    arrival_city = request.form['arrival_city']
    departure_city = request.form['departure_city']
    date = request.form['date']

    que_0 = "SELECT flight.airline_name as airline_name, flight.arrival_time as arrival_time, flight.status as status, flight.flight_num as flight_num, flight.departure_time as departure_time, dept.airport_name as departure_airport, dept.airport_city as departure_city, \
                arr.airport_name as arrival_airport, arr.airport_city as arrival_city, flight.airline_name as airline, flight.price as price, flight.airplane_id as airplane_id\
				FROM (flight, airport as dept, airport as arr) WHERE flight.departure_airport=dept.airport_name and flight.arrival_airport=arr.airport_name AND flight.status = 'upcoming'"

    cur = db.cursor()

    if arrival_airport == '' and departure_airport == '' and arrival_city == '' and departure_city == '' and date == '':
        cur.execute(que_0, ())
        data_default = cur.fetchall()
        return render_template('cus/flight.html', comments=data_default)

    if arrival_airport != '':
        que_0 += "AND flight.arrival_airport = '%s'" % (arrival_airport)

    if departure_airport != '':
        que_0 += "AND flight.departure_airport = '%s'" % (departure_airport)

    if arrival_city != '':
        que_0 += "AND arr.airport_city = '%s'" % (arrival_airport)

    if departure_city != '':
        que_0 += "AND dep.airport_city = '%s'" % (departure_airport)

    if date != '':
        que_0 += "AND DATE(flight.departure_time) = '%s'" % (date)

    cur.execute(que_0)
    data = cur.fetchall()
    db.commit()
    cur.close()
    return render_template('cus/flight.html', comments=data)
示例#2
0
def buy():

    id = session['id']

    airline_name = session['airline_name']
    flight_num = session['flight_num']
    cus_email = session['cus_email']

    query0 = 'SELECT * FROM customer WHERE email = %s'
    cur = db.cursor()
    cur.execute(query0, (cus_email, ))
    data0 = cur.fetchall()

    if not data0:
        error = 'customer not found'
        return render_template('ag/pre_buy.html', error=error)

    ticket_id = str(random.randint(100000, 1000000))

    ticket_ins = "INSERT INTO ticket VALUE (%s , %s , %s)"
    cur.execute(ticket_ins, (ticket_id, flight_num, airline_name))

    purchase_ins = "INSERT INTO purchases VALUE (%s, %s, %s , %s)"

    agent_id = id
    dt = datetime.datetime.now().strftime("%Y-%m-%d")
    cur.execute(purchase_ins, (ticket_id, cus_email, agent_id, dt))
    db.commit()
    cur.close()
    session.pop('airline_name')
    session.pop('flight_num')

    ticket_data = {
        'ticket_id': ticket_id,
        'airline_name': airline_name,
        'cus_email': cus_email,
        "purchase_date": dt
    }

    return render_template('ag/buy.html', comment=ticket_data)
示例#3
0
def buy(airline_name):
    """
    买票视图函数定义
    :param airline_name:
    :return:
    """
    try:
        email = session.get('email')
    except:
        return redirect('/login')

    ticket_id = str(random.randint(100000, 1000000))
    query = "SELECT flight_num FROM flight WHERE airline_name = %s"
    cur = db.cursor()
    cur.execute(query, (airline_name, ))
    data = cur.fetchone()
    if not data:
        return render_template('cus/buy.html', error='have a error.')
    flight_num = data['flight_num']

    # 插入数据到ticket表
    ticket_ins = "INSERT INTO ticket VALUE (%s , %s , %s)"
    cur.execute(ticket_ins, (ticket_id, airline_name, flight_num))

    purchase_ins = "INSERT INTO purchases VALUE (%s, %s, %s , %s)"

    agent_id = None
    dt = datetime.datetime.now().strftime("%Y-%m-%d")
    cur.execute(purchase_ins, (ticket_id, email, agent_id, dt))
    cur.close()
    db.commit()
    data = {
        'ticket_id': ticket_id,
        'airline_name': airline_name,
        "purchase_date": dt
    }

    return render_template("cus/buy.html", comment=data)
示例#4
0
def register():

    if request.method == 'GET':
        return render_template('ag/register.html')

    email = request.form['email']
    password = request.form['password']
    booking_agent_id = request.form['booking_agent_id']
    cur = db.cursor()
    query = 'SELECT * FROM booking_agent WHERE email = %s'
    cur.execute(query, (email, ))
    data = cur.fetchone()
    raw = (password).encode('utf-8')
    crypt_password = hashlib.md5(raw).hexdigest()
    print(crypt_password)

    if data:
        error = 'the email is registered.'
        return render_template('ag/register.html', error=error)
    ins = 'INSERT INTO booking_agent VALUES(%s, %s, %s)'
    cur.execute(ins, (email, crypt_password, booking_agent_id))
    db.commit()
    return render_template('index.html')
示例#5
0
def register():
    """
    注册视图, 如果请求为get,返回注册表单,如果为post方法,进行注册操作。
    登录成功跳转首页。
    :return:
    """
    if request.method == 'GET':
        return render_template('cus/register.html')

    email = request.form['email']
    name = request.form['name']
    password = request.form['password']
    building_number = request.form['building_number']
    street = request.form['street']
    city = request.form['city']
    state = request.form['state']
    phone_number = request.form['phone_number']
    passport_number = request.form['passport_number']
    passport_expiration = request.form['passport_expiration']
    passport_country = request.form['passport_country']
    date_of_birth = request.form['date_of_birth']
    cur = db.cursor()
    query = 'SELECT * FROM customer WHERE email = %s'
    cur.execute(query, (email, ))
    data = cur.fetchall()
    raw = (password).encode('utf-8')
    crypt_password = hashlib.md5(raw).hexdigest()

    if data:
        error = 'the email is registered.'
        return render_template('cus/register.html', error=error)
    ins = 'INSERT INTO customer VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)'
    cur.execute(ins, (email, name, crypt_password, building_number, street,
                      city, state, phone_number, passport_number,
                      passport_expiration, passport_country, date_of_birth))
    db.commit()
    return render_template('index.html')