99 lines
2.4 KiB
Python

from flask import Flask, redirect, url_for, session, g
from flask_httpauth import HTTPTokenAuth
from flask_cors import CORS
from func.config import db, SECRET_KEY
import pymysql
import func.login
import func.signup
import func.modify
import func.index
import func.search
import func.book
import func.pay_confirm
import func.cancel_order
import func.order
import func.order_list
app = Flask(__name__)
app.config["SECRET_KEY"] = SECRET_KEY
app.config["JSON_AS_ASCII"] = False
app.config['SESSION_COOKIE_HTTPONLY'] = True
app.config['SESSION_COOKIE_SECURE'] = False
app.config['SESSION_COOKIE_SAMESITE'] = 'Lax'
CORS(app, supports_credentials=True)
auth = HTTPTokenAuth(scheme='Bearer')
@app.before_request
def before_request():
g.user = None
g.name = None
if 'user_id' in session:
conn = pymysql.connect(**db)
cursor = conn.cursor(pymysql.cursors.DictCursor)
args = (session.get('user_id'),)
verify_sql = "SELECT Username FROM Users WHERE Phone_number = %s;"
cursor.execute(verify_sql, args)
res = cursor.fetchone()
if not res:
g.user = None
g.name = None
else:
g.user = session.get('user_id')
g.name = res['Username']
@app.route("/")
def home():
return redirect(url_for('index'))
@app.route("/index", methods=['GET', 'POST'])
def index():
return func.index.index()
@app.route("/login", methods=['GET', 'POST'])
def login():
return func.login.login()
@app.route('/logout')
def logout():
return func.index.logout()
@app.route("/signup", methods=['GET', 'POST'])
def signup():
return func.signup.signup()
@app.route("/modify", methods=['GET', 'POST'])
def modify():
return func.modify.modify()
@app.route("/search", methods=['GET'])
def search():
return func.search.search()
@app.route("/book", methods=['GET', 'POST'])
def book():
return func.book.book()
@app.route("/order", methods=['GET'])
def order():
return func.order.order()
@app.route('/cancel_order', methods=['POST'])
def cancel_order():
return func.cancel_order.cancel_order()
@app.route('/pay_confirm', methods=['POST'])
def pay_confirm():
return func.pay_confirm.pay_confirm()
@app.route("/order_list", methods=['GET', 'POST'])
def order_list():
return func.order_list.order_list()
if __name__ == "__main__":
app.run(
host="0.0.0.0",
port=8888,
debug=True
)