from flask import Flask, flash, render_template, session, request, redirect, url_for, jsonify from admin.teacherInfo 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('/teachermanage') def teachermanage (): if 'username' in session: teacherlist = loadAllTeacher() return render_template('admin/a_teacher_manage.html', results=teacherlist) else: flash('登录失败, 请重新登录') return redirect(url_for('adminlogin')) # 打开教师信息添加页面 @app.route('/newteacherinfo') def newteacherinfo (): if 'username' in session: return render_template('admin/a_teacher_edit.html', status="add") else: flash('登录失败, 请重新登录') return redirect(url_for('adminlogin')) # 打开教师信息编辑页面 @app.route('/loadteacherforedit/', methods=['POST', 'GET']) def loadteacherforedit (tid): if 'username' in session: teacherinfo = loadTeacherByID(tid) return render_template('admin/a_teacher_edit.html', teacherinfo=teacherinfo, status="edit") else: flash('登录失败, 请重新登录') return redirect(url_for('adminlogin')) @app.route('/editteacherinfo.do', methods=['POST']) def editteacherinfo (): if request.method == 'POST': status = request.form['lbl_status'] TNameCN = request.form['txt_TNameCN'] TNameEN = request.form['txt_TNameEN'] TUniversityNameCN = request.form['txt_TUniversityNameCN'] TUniversityNameEN = request.form['txt_TUniversityNameEN'] TTitle = request.form['txt_TTitle'] Email = request.form['txt_Email'] TImage = request.form['txt_TImage'] ResearchArea = request.form['txt_ResearchArea'] TIntro = request.form['txt_TIntro'].strip('\'"') #或者用eval(request.form['txt_TIntro']) 把返回的json字符串两端的双引号去掉 TIntro = TIntro.replace('''"''', r'''\"''').replace("'", r"\'") MainWeb = request.form['txt_MainWeb'] GoogleWeb = request.form['txt_GoogleWeb'] f = request.files['file_proimg'] proimg = "" if (f != None and f.filename != ""): proimg = uploadimage(f) if proimg == "": proimg = TImage if status == 'add': data = [TNameCN, TNameEN, TUniversityNameCN, TUniversityNameEN, TTitle, Email, proimg, ResearchArea, TIntro, MainWeb, GoogleWeb] i, msg = add_TeacherInfo(data) if i > 0: flash('教师信息添加成功!') else: flash('教师信息添加失败!%s' % str(msg)) elif status == 'edit': TID = request.form['lbl_tid'] data = [TNameCN, TNameEN, TUniversityNameCN, TUniversityNameEN, TTitle, Email, proimg, ResearchArea, TIntro, MainWeb, GoogleWeb, TID] i, msg = update_Teacher(data) if i > 0: flash('教师信息修改成功!') else: flash('教师信息修改失败!%s' % str(msg)) return redirect(url_for('teachermanage')) 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_Teach'], images_name) f.save(file_path) return file_path # "Success" #jsonify(file_path) # 查看教师 @app.route('/viewteacher/', methods=['POST', 'GET']) def viewteacher (tid): if 'username' in session: teacherinfo = loadTeacherByID(tid) return render_template('admin/a_teacher_view.html', teacherinfo=teacherinfo) else: flash('登录失败, 请重新登录') return redirect(url_for('adminlogin')) # 删除教师信息 @app.route('/delteacher/', methods=['POST']) def delteacher (tid): i, msg = del_Teacher(tid) if i > 0: flash('教师信息删除成功!') else: flash('教师信息删除失败!%s' % str(msg)) return redirect(url_for('teachermanage'))