| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- from flask import Flask, flash, render_template, session, request, redirect, url_for, jsonify
- from admin.studentinfo import *
- from flask import current_app as app
- from werkzeug.utils import secure_filename
- import os
- from hashlib import md5
- from pathlib import Path
- from datetime import datetime
- # 设置允许的文件格式
- ALLOWED_EXTENSIONS = set(['png', 'jpg', 'JPG', 'PNG', 'bmp'])
- #判断文件格式
- def allowed_file (filename):
- return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS
- #------------------学生信息管理------------------
- @app.route('/studentmanage')
- def studentmanage():
- if 'username' in session:
- studentlist = loadAllStudent()
- return render_template('admin/a_student_manage.html', results= studentlist)
- else:
- flash('登录失败, 请重新登录')
- return redirect(url_for('adminlogin'))
- #打开学生信息添加页面
- @app.route('/newstudentinfo')
- def newstudentinfo():
- if 'username' in session:
- return render_template('admin/a_student_edit.html', status="add")
- else:
- flash('登录失败, 请重新登录')
- return redirect(url_for('adminlogin'))
- #打开学生信息编辑页面
- @app.route('/loadstudentforedit/<sid>', methods = ['POST','GET'])
- def loadstudentforedit(sid):
- if 'username' in session:
- studentinfo = loadStudentByID(sid)
- return render_template('admin/a_student_edit.html', studentinfo = studentinfo, status="edit")
- else:
- flash('登录失败, 请重新登录')
- return redirect(url_for('adminlogin'))
- @app.route('/editstudentinfo.do', methods = ['POST'])
- def editstudentinfo():
- if request.method == 'POST':
- status = request.form['lbl_status']
- SNameCN = request.form['txt_SNameCN']
- SNameEN = request.form['txt_SNameEN']
- UniversityNameCN = request.form['txt_UniversityNameCN']
- UniversityNameEN = request.form['txt_UniversityNameEN']
- MajorNameCN = request.form['txt_MajorNameCN']
- MajorNameEN = request.form['txt_MajorNameEN']
- SType = request.form['txt_SType']
- SYear = request.form['txt_SYear']
- Email = request.form['txt_Email']
- SImage = request.form['txt_SImage']
- SIntroduce = request.form['txt_SIntroduce'].strip('\'"') #或者用eval(request.form['txt_SIntroduce']) 把返回的json字符串两端的双引号去掉
- SIntroduce = SIntroduce.replace('''"''', r'''\"''').replace("'", r"\'")
- SResearchwork = request.form['txt_SResearchwork'].strip('\'"')
- # 把返回的json字符串两端的双引号去掉
- SResearchwork = SResearchwork.replace('''"''', r'''\"''').replace("'", r"\'")
- f = request.files['file_proimg']
- proimg = ""
- if (f != None and f.filename != ""):
- proimg = uploadimage(f)
- if proimg == "":
- proimg = SImage
- if status == 'add':
- data = [SNameCN, SNameEN, UniversityNameCN, UniversityNameEN, MajorNameCN, MajorNameEN, SType, SYear, Email, proimg, SIntroduce, SResearchwork]
- i, msg = add_StudentInfo(data)
- if i > 0:
- flash('学生信息添加成功!')
- else:
- flash('学生信息添加失败!'+str(msg))
- elif status == 'edit':
- SID=request.form['lbl_sid']
- data = [SNameCN, SNameEN, UniversityNameCN, UniversityNameEN, MajorNameCN, MajorNameEN, SType, SYear, Email, proimg, SIntroduce, SResearchwork, SID]
- i, msg = update_Student(data)
- if i > 0:
- flash('学生信息修改成功!' + str(msg))
- else:
- flash('学生信息修改失败!' + str(msg))
- return redirect(url_for('studentmanage'))
- def uploadimage(f):
- #f = request.files['file_proimg']
- if not (f and allowed_file(f.filename)):
- return "False" #jsonify({"error": 1001, "msg": """请检查上传的图片类型,仅限于png、PNG、jpg、JPG、bmp"})
- digest = md5(f.filename.encode("utf-8")).hexdigest()
- suffix = Path(f.filename).suffix
- images_name = datetime.now().strftime('%Y%m%d%H%M%S') + f'{digest}{suffix}'
- #images_name = datetime.now().strftime('%Y%m%d%H%M%S') + '11'
- file_path = os.path.join(app.config['UPLOAD_FOLDER_IMG_Student'], images_name)
- f.save(file_path)
- return file_path #"Success" #jsonify(file_path)
- #查看学生
- @app.route('/viewstudent/<sid>', methods = ['POST','GET'])
- def viewstudent(sid):
- if 'username' in session:
- studentinfo = loadStudentByID(sid)
- return render_template('admin/a_student_view.html', studentinfo = studentinfo)
- else:
- flash('登录失败, 请重新登录')
- return redirect(url_for('adminlogin'))
- #删除学生信息
- @app.route('/delstudent/<sid>', methods = ['POST'])
- def delstudent(sid):
- i, msg = del_Student(sid)
- if i > 0:
- flash('学生信息删除成功!')
- else:
- flash('学生信息删除失败!%s' % str(msg))
- return redirect(url_for('studentmanage'))
|