You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

307 lines
13 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

from flask import Flask,render_template,request,redirect
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:@127.0.0.1/test'
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(app)
class Dengjiren(db.Model):
__tablename__ = "dengjiren"
工号 = db.Column(db.Integer, primary_key=True)
名称 = db.Column(db.String(255))
电话 = db.Column(db.String(255))
class Juanzengjilu(db.Model):
__tablename__ = "juanzengjilu"
捐赠记录编号 = db.Column(db.Integer, primary_key=True)
捐赠人编号 = db.Column(db.Integer, db.ForeignKey('juanzengzhe.捐赠者编号'))
捐赠者名称 = db.Column(db.String(255))
捐赠时间 = db.Column(db.String(255))
捐赠地址 = db.Column(db.String(255))
登记人编号 = db.Column(db.Integer, db.ForeignKey('dengjiren.工号'))
物品编号 = db.Column(db.Integer, db.ForeignKey('wupin.物品编号'))
物品名称 = db.Column(db.String(255))
物品数量 = db.Column(db.String(255))
受捐人编号 = db.Column(db.Integer, db.ForeignKey('shoujuanzhe.受捐者编号'))
受捐人名称 = db.Column(db.String(255))
juanzeng = db.relationship("Juanzengzhe", backref=db.backref("juanzengjilu", cascade="save-update,delete"), cascade="save-update")
wupin = db.relationship("Wupin", backref=db.backref("juanzengjilu", cascade="save-update,delete"),cascade="save-update")
dengji = db.relationship("Dengjiren",backref='juanzengjilus')
shoujuan = db.relationship("Shoujuanzhe", backref='juanzengjilus')
class Juanzengzhe(db.Model):
__tablename__ = "juanzengzhe"
捐赠者编号 = db.Column(db.Integer, primary_key=True)
捐赠者名称 = db.Column(db.String(255))
地址 = db.Column(db.String(255))
联系电话 = db.Column(db.String(255))
class Shoujuanjilu(db.Model):
__tablename__ = "shoujuanjilu"
受捐记录编号 = db.Column(db.Integer, primary_key=True)
受捐人编号 = db.Column(db.Integer, db.ForeignKey('shoujuanzhe.受捐者编号'))
受捐人名称 = db.Column(db.String(255))
受捐时间 = db.Column(db.String(255))
受捐地址 = db.Column(db.String(255))
登记人编号 = db.Column(db.Integer, db.ForeignKey('dengjiren.工号'))
物品编号 = db.Column(db.Integer, db.ForeignKey('wupin.物品编号'))
物品名称 = db.Column(db.String(255))
物品数量 = db.Column(db.String(255))
捐赠人编号 = db.Column(db.Integer, db.ForeignKey('juanzengzhe.捐赠者编号'))
捐赠人名称 = db.Column(db.String(255))
shoujuan = db.relationship("Shoujuanzhe", backref=db.backref("shoujuanjilu", cascade="save-update,delete"),cascade="save-update")
wupin = db.relationship("Wupin", backref=db.backref("shoujuanjilu", cascade="save-update,delete"),cascade="save-update")
dengji = db.relationship("Dengjiren", backref='shoujuanjilus')
juanzeng = db.relationship("Juanzengzhe", backref='shoujuanjilus')
class Shoujuanzhe(db.Model):
__tablename__ = "shoujuanzhe"
受捐者编号 = db.Column(db.Integer, primary_key=True)
名称 = db.Column(db.String(255))
地址 = db.Column(db.String(255))
联系电话 = db.Column(db.String(255))
class Wupin(db.Model):
__tablename__ = "wupin"
物品编号 = db.Column(db.Integer, primary_key=True)
物品名称 = db.Column(db.String(255))
物品数量 = db.Column(db.String(255))
储存方式 = db.Column(db.String(255))
仓库名称 = db.Column(db.String(255), db.ForeignKey('cangku.仓库名称'))
cangku = db.relationship("Cangku", backref='wupins')
class Cangku(db.Model):
__tablename__ = "cangku"
仓库名称 = db.Column(db.String(255), primary_key=True)
仓库地址 = db.Column(db.String(255))
class Yonghu(db.Model):
account = db.Column(db.String(255), primary_key=True)
password = db.Column(db.String(255))
@app.route("/index_page")
def index_page():
juanzeng_list = Juanzengjilu.query.all()
shoujuan_list = Shoujuanjilu.query.all()
# 拿到数据库的数据
return render_template("index.html", juanzeng_list=juanzeng_list, shoujuan_list=shoujuan_list)
@app.route("/select_dengjiren_page")
def select_dengjiren_page():
dengjirenList = Dengjiren.query.all()
# 拿到数据库的数据
return render_template("dengjiren.html",dengjirenList=dengjirenList)
@app.route("/select_juanzengjilu_page")
def select_juanzengjilu_page():
juanzengjiluList = Juanzengjilu.query.all()
# 拿到数据库的数据
return render_template("juanzengjilu.html",juanzengjiluList=juanzengjiluList)
@app.route("/select_juanzengzhe_page")
def select_juanzengzhe_page():
juanzengzheList = Juanzengzhe.query.all()
# 拿到数据库的数据
return render_template("juanzengzhe.html",juanzengzheList=juanzengzheList)
@app.route("/select_shoujuanjilu_page")
def select_shoujuanjilu_page():
shoujuanjiluList = Shoujuanjilu.query.all()
# 拿到数据库的数据
return render_template("shoujuanjilu.html",shoujuanjiluList=shoujuanjiluList)
@app.route("/select_shoujuanzhe_page")
def select_shoujuanzhe_page():
shoujuanzheList = Shoujuanzhe.query.all()
# 拿到数据库的数据
return render_template("shoujuanzhe.html",shoujuanzheList=shoujuanzheList)
@app.route("/select_wupin_page")
def select_wupin_page():
wupinList = Wupin.query.all()
# 拿到数据库的数据
return render_template("wupin.html",wupinList=wupinList)
@app.route("/select_cangku_page")
def select_cangku_page():
cangkuList = Cangku.query.all()
# 拿到数据库的数据
return render_template("cangku.html", cangkuList=cangkuList)
@app.route("/log_page")
def log_page():
return render_template("log.html")
@app.route("/")
def begin():
return log_page()
@app.route('/verification',methods=['GET','POST'])
def verification():
account = request.form['account']
password = request.form['password']
if ((account == 'root') & (password == '123456')):
return render_template("choice.html")
else:
return render_template("verification_false.html")
@app.route("/dengjiren_delete",methods=['GET'])
def dengjiren_delete():
#操作数据库得到目标数据before_number表示删除之前的数量after_name表示删除之后的数量
工号 = request.args.get("工号")
dengjiren = Dengjiren.query.filter_by(工号=工号).first()
db.session.delete(dengjiren)
db.session.commit()
return render_template("dengjiren.html")
#修改操作
@app.route("/dengjiren_alter",methods=['GET','POST'])
def dengjiren_alter():
# 可以通过请求方式来改变处理该请求的具体操作
# 比如用户访问/alter页面 如果通过GET请求则返回修改页面 如果通过POST请求则使用修改操作
if request.method == 'GET':
工号 = request.args.get("工号")
名称 = request.args.get("名称")
电话 = request.args.get("电话")
dengjiren = Dengjiren(工号 = 工号,名称=名称,电话=电话)
return render_template("dengjiren_alter.html",dengjiren = dengjiren)
else:
#接收参数,修改数据
工号 = request.form["工号"]
名称 = request.form['名称']
电话 = request.form['电话']
dengjiren = Dengjiren.query.filter_by(工号 = 工号).first()
dengjiren.名称 = 名称
dengjiren.电话 = 电话
db.session.commit()
return render_template("choice.html")
@app.route('/dengjiren_insert',methods=['GET','POST'])
def dengjiren_insert():
#进行添加操作
工号 = request.form['工号']
名称 = request.form['名称']
电话 = request.form['电话']
dengjiren = Dengjiren(工号=工号,名称=名称,电话=电话)
db.session.add(dengjiren)
db.session.commit()
#添加完成重定向至主页
return render_template("choice.html")
@app.route("/dengjiren_insert_page")
def dengjiren_insert_page():
#跳转至添加信息页面
return render_template("dengjiren_insert.html")
@app.route("/verification_page")
def verification_page():
#跳转至添加信息页面
return render_template("verification.html")
@app.route("/back_log")
def back_log():
#跳转至添加信息页面
return render_template("log.html")
@app.route("/back_choice")
def back_choice():
#跳转至添加信息页面
return render_template("choice.html")
@app.route("/juanzengjilu_delete",methods=['GET'])
def juanzengjilu_delete():
#操作数据库得到目标数据before_number表示删除之前的数量after_name表示删除之后的数量
捐赠记录编号 = request.args.get("捐赠记录编号")
juanzengjilu = Juanzengjilu.query.filter_by(捐赠记录编号=捐赠记录编号).first()
db.session.delete(juanzengjilu)
db.session.commit()
return render_template("juanzengjilu.html")
#修改操作
@app.route("/juanzengjilu_alter",methods=['GET','POST'])
def juanzengjilu_alter():
# 可以通过请求方式来改变处理该请求的具体操作
# 比如用户访问/alter页面 如果通过GET请求则返回修改页面 如果通过POST请求则使用修改操作
if request.method == 'GET':
捐赠记录编号 = request.args.get("捐赠记录编号")
捐赠人编号 = request.args.get("捐赠人编号")
捐赠者名称 = request.args.get("捐赠者名称")
捐赠时间 = request.args.get("捐赠时间")
捐赠地址 = request.args.get("捐赠地址")
登记人编号 = request.args.get("登记人编号")
物品编号 = request.args.get("物品编号")
物品名称 = request.args.get("物品名称")
物品数量 = request.args.get("物品数量")
受捐人编号 = request.args.get("受捐人编号")
受捐人名称 = request.args.get("受捐人名称")
juanzengjilu = Juanzengjilu(捐赠记录编号 = 捐赠记录编号,捐赠人编号=捐赠人编号,捐赠者名称=捐赠者名称,捐赠时间=捐赠时间,捐赠地址=捐赠地址,登记人编号=登记人编号,物品编号=物品编号,物品名称=物品名称,物品数量=物品数量,受捐人编号=受捐人编号,受捐人名称=受捐人名称)
return render_template("juanzengjilu_alter.html",juanzengjilu = juanzengjilu)
else:
#接收参数,修改数据
捐赠记录编号 = request.args.get("捐赠记录编号")
捐赠人编号 = request.args.get("捐赠人编号")
捐赠者名称 = request.args.get("捐赠者名称")
捐赠时间 = request.args.get("捐赠时间")
捐赠地址 = request.args.get("捐赠地址")
登记人编号 = request.args.get("登记人编号")
物品编号 = request.args.get("物品编号")
物品名称 = request.args.get("物品名称")
物品数量 = request.args.get("物品数量")
受捐人编号 = request.args.get("受捐人编号")
受捐人名称 = request.args.get("受捐人名称")
juanzengjilu = Juanzengjilu.query.filter_by(捐赠记录编号 = 捐赠记录编号).first()
juanzengjilu.捐赠人编号 = 捐赠人编号
juanzengjilu.捐赠者名称 = 捐赠者名称
juanzengjilu.捐赠时间 = 捐赠时间
juanzengjilu.捐赠地址 = 捐赠地址
juanzengjilu.登记人编号 = 登记人编号
juanzengjilu.物品编号 = 物品编号
juanzengjilu.物品名称 = 物品名称
juanzengjilu.物品数量 = 物品数量
juanzengjilu.受捐人编号 = 受捐人编号
juanzengjilu.受捐人名称 = 受捐人名称
db.session.commit()
return render_template("choice.html")
@app.route('/juanzengjilu_insert',methods=['GET','POST'])
def juanzengjilu_insert():
#进行添加操作
捐赠记录编号 = request.form['捐赠记录编号']
捐赠人编号 = request.form['捐赠人编号']
捐赠者名称 = request.form['捐赠者名称']
捐赠时间 = request.form['捐赠时间']
捐赠地址 = request.form['捐赠地址']
登记人编号 = request.form['登记人编号']
物品编号 = request.form['物品编号']
物品名称 = request.form['物品名称']
物品数量 = request.form['物品数量']
受捐人编号 = request.form['受捐人编号']
受捐人名称 = request.form['受捐人名称']
juanzengjilu = Juanzengjilu(捐赠记录编号=捐赠记录编号, 捐赠人编号=捐赠人编号, 捐赠者名称=捐赠者名称, 捐赠时间=捐赠时间, 捐赠地址=捐赠地址, 登记人编号=登记人编号, 物品编号=物品编号,
物品名称=物品名称, 物品数量=物品数量, 受捐人编号=受捐人编号, 受捐人名称=受捐人名称)
db.session.add(juanzengjilu)
db.session.commit()
#添加完成重定向至主页
return render_template("choice.html")
@app.route("/juanzengjilu_insert_page")
def juanzengjilu_insert_page():
#跳转至添加信息页面
return render_template("juanzengjilu_insert.html")
if __name__ == '__main__':
app.run(host='192.168.1.101', port=5124)