b_teacherinfo.py 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. from flask import Flask, flash, render_template, session, request, redirect, url_for, jsonify
  2. from admin.teacherInfo import *
  3. from flask import current_app as app
  4. from werkzeug.utils import secure_filename
  5. import os
  6. from hashlib import md5
  7. from pathlib import Path
  8. from datetime import datetime
  9. # 设置允许的文件格式
  10. ALLOWED_EXTENSIONS = set(['png', 'jpg', 'JPG', 'PNG', 'bmp'])
  11. # 判断文件格式
  12. def allowed_file (filename):
  13. return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS
  14. # ------------------教师信息管理------------------
  15. @app.route('/teachermanage')
  16. def teachermanage ():
  17. if 'username' in session:
  18. teacherlist = loadAllTeacher()
  19. return render_template('admin/a_teacher_manage.html', results=teacherlist)
  20. else:
  21. flash('登录失败, 请重新登录')
  22. return redirect(url_for('adminlogin'))
  23. # 打开教师信息添加页面
  24. @app.route('/newteacherinfo')
  25. def newteacherinfo ():
  26. if 'username' in session:
  27. return render_template('admin/a_teacher_edit.html', status="add")
  28. else:
  29. flash('登录失败, 请重新登录')
  30. return redirect(url_for('adminlogin'))
  31. # 打开教师信息编辑页面
  32. @app.route('/loadteacherforedit/<tid>', methods=['POST', 'GET'])
  33. def loadteacherforedit (tid):
  34. if 'username' in session:
  35. teacherinfo = loadTeacherByID(tid)
  36. return render_template('admin/a_teacher_edit.html', teacherinfo=teacherinfo, status="edit")
  37. else:
  38. flash('登录失败, 请重新登录')
  39. return redirect(url_for('adminlogin'))
  40. @app.route('/editteacherinfo.do', methods=['POST'])
  41. def editteacherinfo ():
  42. if request.method == 'POST':
  43. status = request.form['lbl_status']
  44. TNameCN = request.form['txt_TNameCN']
  45. TNameEN = request.form['txt_TNameEN']
  46. TUniversityNameCN = request.form['txt_TUniversityNameCN']
  47. TUniversityNameEN = request.form['txt_TUniversityNameEN']
  48. TTitle = request.form['txt_TTitle']
  49. Email = request.form['txt_Email']
  50. TImage = request.form['txt_TImage']
  51. ResearchArea = request.form['txt_ResearchArea']
  52. TIntro = request.form['txt_TIntro'].strip('\'"') #或者用eval(request.form['txt_TIntro']) 把返回的json字符串两端的双引号去掉
  53. TIntro = TIntro.replace('''"''', r'''\"''').replace("'", r"\'")
  54. MainWeb = request.form['txt_MainWeb']
  55. GoogleWeb = request.form['txt_GoogleWeb']
  56. f = request.files['file_proimg']
  57. proimg = ""
  58. if (f != None and f.filename != ""):
  59. proimg = uploadimage(f)
  60. if proimg == "":
  61. proimg = TImage
  62. if status == 'add':
  63. data = [TNameCN, TNameEN, TUniversityNameCN, TUniversityNameEN, TTitle, Email, proimg, ResearchArea, TIntro,
  64. MainWeb, GoogleWeb]
  65. i, msg = add_TeacherInfo(data)
  66. if i > 0:
  67. flash('教师信息添加成功!')
  68. else:
  69. flash('教师信息添加失败!%s' % str(msg))
  70. elif status == 'edit':
  71. TID = request.form['lbl_tid']
  72. data = [TNameCN, TNameEN, TUniversityNameCN, TUniversityNameEN, TTitle, Email, proimg, ResearchArea, TIntro,
  73. MainWeb, GoogleWeb, TID]
  74. i, msg = update_Teacher(data)
  75. if i > 0:
  76. flash('教师信息修改成功!')
  77. else:
  78. flash('教师信息修改失败!%s' % str(msg))
  79. return redirect(url_for('teachermanage'))
  80. def uploadimage (f):
  81. # f = request.files['file_proimg']
  82. if not (f and allowed_file(f.filename)):
  83. return "False" # jsonify({"error": 1001, "msg": """请检查上传的图片类型,仅限于png、PNG、jpg、JPG、bmp"})
  84. digest = md5(f.filename.encode("utf-8")).hexdigest()
  85. suffix = Path(f.filename).suffix
  86. images_name = datetime.now().strftime('%Y%m%d%H%M%S') + f'{digest}{suffix}'
  87. # images_name = datetime.now().strftime('%Y%m%d%H%M%S') + '11'
  88. file_path = os.path.join(app.config['UPLOAD_FOLDER_IMG_Teach'], images_name)
  89. f.save(file_path)
  90. return file_path # "Success" #jsonify(file_path)
  91. # 查看教师
  92. @app.route('/viewteacher/<tid>', methods=['POST', 'GET'])
  93. def viewteacher (tid):
  94. if 'username' in session:
  95. teacherinfo = loadTeacherByID(tid)
  96. return render_template('admin/a_teacher_view.html', teacherinfo=teacherinfo)
  97. else:
  98. flash('登录失败, 请重新登录')
  99. return redirect(url_for('adminlogin'))
  100. # 删除教师信息
  101. @app.route('/delteacher/<tid>', methods=['POST'])
  102. def delteacher (tid):
  103. i, msg = del_Teacher(tid)
  104. if i > 0:
  105. flash('教师信息删除成功!')
  106. else:
  107. flash('教师信息删除失败!%s' % str(msg))
  108. return redirect(url_for('teachermanage'))