前端
导入flask对象
from flask import Flask, render_template, redirect, request, session
from flask_sqlalchemy import SQLAlchemy
配置
waimai = Flask(__name__)
class Config:
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:nzpyyj262510@localhost:3306/flaskdb?charset=utf8mb4'
SQLALCHEMY_TRACK_MODIFICATIONS = True
waimai.config.from_object(Config)
db = SQLAlchemy(waimai)
waimai.secret_key='SOFTWARE'
各种数据导入数据库
class User(db.Model):
__tablename__ = 'user_info'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=True)
user_name = db.Column(db.String(100), nullable=True)
user_password = db.Column(db.String(100), nullable=True)
zhifu_password=db.Column(db.String(100), nullable=True)
class Shangjia(db.Model):
__tablename__ = 'Shangjia_info'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=True)
sj_name = db.Column(db.String(100), nullable=True)
sj_password = db.Column(db.String(100), nullable=True)
class Guanli(db.Model):
__tablename__ = 'Guanli_info'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=True)
gl_name = db.Column(db.String(100), nullable=True)
gl_password = db.Column(db.String(100), nullable=True)
class Caiping(db.Model):
__tablename__ = 'Caiping_info'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=True)
cp_name = db.Column(db.String(100), nullable=True)
cp_price = db.Column(db.String(100), nullable=True)
cp_kouwei = db.Column(db.String(100), nullable=True)
class Gouwuche(db.Model):
__tablename__ = 'Gouwuche_info'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=True)
gwc_name = db.Column(db.String(100), nullable=True)
gwc_price = db.Column(db.String(100), nullable=True)
gwc_kouwei = db.Column(db.String(100), nullable=True)
class Dingdan(db.Model):
__tablename__ = 'Dingdan_info'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=True)
dd_name = db.Column(db.String(100), nullable=True)
dd_price = db.Column(db.String(100), nullable=True)
class Pingjia(db.Model):
__tablename__ = 'Pingjia_info'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=True)
pj_name = db.Column(db.String(100), nullable=True)
pj_price = db.Column(db.String(100), nullable=True)
pj_kouwei = db.Column(db.String(100), nullable=True)
pj_pingjia = db.Column(db.String(100), nullable=True)
class Tousu(db.Model):
__tablename__ = 'Tousu_info'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=True)
ts_name = db.Column(db.String(100), nullable=True)
ts_tousu = db.Column(db.String(100), nullable=True)
db.create_all()
后端
管理员端
@waimai.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
but1 = request.values.get('btn1')
but2 = request.values.get('btn2')
but3 = request.values.get('btn3')
but4 = request.values.get('btn4')
but5 = request.values.get('btn5')
but6 = request.values.get('btn6')
username = request.form.get('username')
password = request.form.get('password')
zfpassword=request.form.get('zfpassword')
reg_name = request.form.get('register_name')
reg_pwd = request.form.get('register_password')
reg_zfpwd=request.form.get('register_zfpassword')
if but2 == 'register_but':
user = User(user_name=reg_name, user_password=reg_pwd,zhifu_password=reg_zfpwd)
db.session.add(user)
db.session.commit()
return redirect('/admin')
elif but3 =='register_but':
shangjia = Shangjia(sj_name=reg_name, sj_password=reg_pwd)
db.session.add(shangjia)
db.session.commit()
return redirect('/admin2')
elif but6 =='register_but':
guanli = Guanli(gl_name=reg_name,gl_password=reg_pwd)
db.session.add(guanli)
db.session.commit()
return redirect('/gltousu')
elif but5 =='login_but':
dbuser = User.query.filter_by(user_name=username).first()
if dbuser and username == dbuser.user_name and password == dbuser.user_password:
session['user_info'] = username
return redirect('/admin')
else:
error = "用户名密码错误!"
return render_template('login.html', message=error)
elif but1 =='login_but':
dbuser = User.query.filter_by(user_name=username).first()
if dbuser and username==dbuser.user_name and password==dbuser.user_password:
session['user_info'] = username
return redirect('/admin')
else:
error = "用户名密码错误!"
return render_template('login.html', message=error)
else:
dbuser = Shangjia.query.filter_by(sj_name=username).first()
if dbuser and username == dbuser.sj_name and password == dbuser.sj_password:
session['shangjia_info'] = username
return redirect('/admin2')
else:
error = "用户名密码错误!"
return render_template('login.html', message=error)
else:
error = "用户名密码错误!"
return render_template('login.html', message=error)
管理投诉
@waimai.route('/gltousu', methods=["GET", "POST"])
def gltousu():
if request.method == 'POST':
tsname = request.form.get('name')
tstousu = request.form.get('tousu')
tstousu = Tousu(ts_name=tsname,ts_tousu=tstousu)
db.session.add(tstousu)
db.session.commit()
return redirect('/login')
tousus = Tousu.query.filter_by().all()
return render_template('gltousu.html',tousus=tousus)
删除投诉
@waimai.route('/delete4')
def delete4():
del_id = request.args.get('id')
ts = Tousu.query.filter_by(id=int(del_id)).first()
db.session.delete(ts)
db.session.commit()
return redirect('/admin')
更改投诉
@waimai.route('/change4', methods=["GET", "POST"])
def change4():
change_id = request.args.get('id')
print(change_id)
tousu = Tousu.query.get(int(change_id))
if request.method == "POST":
tsname = request.form.get('name')
tstousu=request.form.get('tousu')
tousu.ts_name = tsname
tousu.ts_tousu=tstousu
db.session.commit()
return redirect('/admin')
return render_template('change4.html', tousu=tousu)
客户端
@waimai.route('/admin', methods=['GET', 'POST'])
def admin():
caipings = Caiping.query.filter_by().all()
gouwuches=Gouwuche.query.filter_by().all()
pingjias=Pingjia.query.filter_by().all()
tousus = Tousu.query.filter_by().all()
but7 = request.values.get('btn7')
zfpassword = request.form.get('zfpassword')
if but7 == 'login_but':
zfpd = User.query.filter_by(zhifu_password=zfpassword).first()
if zfpassword == zfpd.zhifu_password:
session['user_info'] = zfpassword
return redirect('/dingdan')
else:
error = "用户名密码错误!"
return redirect('/admin')
return render_template('admin.html',caipings=caipings,gouwuches=gouwuches,pingjias=pingjias,tousus=tousus)
购物车菜品删除
@waimai.route('/delete2')
def delete2():
del_id = request.args.get('id')
gwc = Gouwuche.query.filter_by(id=int(del_id)).first()
db.session.delete(gwc)
db.session.commit()
return redirect('/admin')
购物车菜品更改
@waimai.route('/change2', methods=["GET", "POST"])
def change2():
change_id = request.args.get('id')
print(change_id)
gouwuche = Gouwuche.query.get(int(change_id))
if request.method == "POST":
gwcname = request.form.get('name')
gwcprice = request.form.get('price')
gwckouwei = request.form.get('kouwei')
gouwuche.gwc_name = gwcname
gouwuche.gwc_price = int(gwcprice)
gouwuche.gwc_kouwei = gwckouwei
db.session.commit()
return redirect('/admin')
return render_template('change2.html', gouwuche=gouwuche)
购物车菜品增加
@waimai.route('/addgwc', methods=["GET", "POST"])
def addgwc():
if request.method == 'POST':
gwcname = request.form.get('name')
gwcprice = request.form.get('price')
gwckouwei = request.form.get('kouwei')
gouwuche= Gouwuche(gwc_name=gwcname, gwc_price=gwcprice, gwc_kouwei=gwckouwei)
db.session.add(gouwuche)
db.session.commit()
return redirect('/admin')
return render_template('addgwc.html')
增加评价
@waimai.route('/addpj', methods=["GET", "POST"])
def addpj():
if request.method == 'POST':
pjname = request.form.get('name')
pjprice = request.form.get('price')
pjkouwei = request.form.get('kouwei')
pjpingjia=request.form.get('pingjia')
pjpingjia= Pingjia(pj_name=pjname, pj_price=pjprice, pj_kouwei=pjkouwei,pj_pingjia=pjpingjia)
db.session.add(pjpingjia)
db.session.commit()
return redirect('/admin')
return render_template('addpj.html')
增加投诉
@waimai.route('/addts', methods=["GET", "POST"])
def addts():
if request.method == 'POST':
tsname = request.form.get('name')
tstousu=request.form.get('tousu')
tstousu= Tousu(ts_name=tsname,ts_tousu=tstousu)
db.session.add(tstousu)
db.session.commit()
return redirect('/admin')
return render_template('addts.html')
评价更改
@waimai.route('/change3', methods=["GET", "POST"])
def change3():
change_id = request.args.get('id')
print(change_id)
pingjia = Pingjia.query.get(int(change_id))
if request.method == "POST":
pjname = request.form.get('name')
pjprice = request.form.get('price')
pjkouwei = request.form.get('kouwei')
pjpingjia=request.form.get('pingjia')
pingjia.pj_name = pjname
pingjia.pj_price = int(pjprice)
pingjia.pj_kouwei = pjkouwei
pingjia.pj_pingjia=pjpingjia
db.session.commit()
return redirect('/admin')
return render_template('change3.html', pingjia=pingjia)
商家端
@waimai.route('/admin2')
def admin2():
success = f'欢迎商家登陆!'
caipings = Caiping.query.filter_by().all()
return render_template('admin2.html',caipings=caipings,message =success)
增加菜品
@waimai.route('/add', methods=["GET", "POST"])
def add():
if request.method == 'POST':
cpname = request.form.get('name')
cpprice = request.form.get('price')
cpkouwei = request.form.get('kouwei')
caiping= Caiping(cp_name=cpname, cp_price=cpprice, cp_kouwei=cpkouwei)
db.session.add(caiping)
db.session.commit()
return redirect('/admin2')
return render_template('add.html')
删除菜品
@waimai.route('/delete')
def delete():
del_id = request.args.get('id')
cp = Caiping.query.filter_by(id=int(del_id)).first()
db.session.delete(cp)
db.session.commit()
return redirect('/admin2')
删除评价
@waimai.route('/delete3')
def delete3():
del_id = request.args.get('id')
pj = Pingjia.query.filter_by(id=int(del_id)).first()
db.session.delete(pj)
db.session.commit()
return redirect('/admin')
订单管理
@waimai.route('/dingdan', methods=["GET", "POST"])
def dingdan():
if request.method == 'POST':
gwcname = request.form.get('name')
gwcprice = request.form.get('price')
gwcgouwuche = Gouwuche(gwc_name=gwcname,gwc_price=gwcprice)
db.session.add(gwcgouwuche)
db.session.commit()
return redirect('/admin')
gouwuches = Gouwuche.query.filter_by().all()
return render_template('dingdan.html',gouwuches=gouwuches)
更改菜品
@waimai.route('/change', methods=["GET", "POST"])
def change():
change_id = request.args.get('id')
print(change_id)
caiping = Caiping.query.get(int(change_id))
if request.method == "POST":
cpname = request.form.get('name')
cpprice = request.form.get('price')
cpkouwei = request.form.get('kouwei')
caiping.cp_name = cpname
caiping.cp_price = int(cpprice)
caiping.cp_kouwei = cpkouwei
db.session.commit()
return redirect('/admin2')
return render_template('change.html', caiping=caiping)
返回与输出
@waimai.route('/')
def index():
return redirect('/login')
if __name__ == '__main__':
waimai.run(debug=True)