81 lines
2.0 KiB
Python
81 lines
2.0 KiB
Python
from flask import Flask, redirect, url_for, session, render_template, request, g
|
|
from flask_httpauth import HTTPTokenAuth
|
|
from flask_cors import CORS
|
|
from func.config import db, SECRET_KEY, slideshow_images
|
|
import pymysql
|
|
|
|
import func.login
|
|
import func.signup
|
|
import func.modify
|
|
import func.index
|
|
|
|
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 Phone_number, 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 = res['Phone_number']
|
|
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():
|
|
if request.method == 'GET':
|
|
if not g.user:
|
|
return redirect(url_for("login"))
|
|
return func.modify.modify()
|
|
|
|
@app.route("/search", methods=['GET'])
|
|
def search():
|
|
# 处理搜索逻辑
|
|
return "搜索结果"
|
|
|
|
@app.route("/orders", methods=['GET', 'POST'])
|
|
def orders():
|
|
return "我的订单"
|
|
|
|
if __name__ == "__main__":
|
|
app.run(
|
|
host="0.0.0.0",
|
|
port=5000,
|
|
debug=True
|
|
)
|