b_researchtopic.py 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. from flask import flash, render_template, session, request, redirect, url_for, jsonify
  2. from admin.researcharea import *
  3. from admin.researchtopic import *
  4. from flask import current_app as app
  5. from werkzeug.utils import secure_filename
  6. import os
  7. from hashlib import md5
  8. from pathlib import Path
  9. from datetime import datetime
  10. from admin.dboper import *
  11. # 设置允许的文件格式
  12. ALLOWED_EXTENSIONS = set(['png', 'jpg', 'JPG', 'PNG', 'bmp'])
  13. #判断文件格式
  14. def allowed_file (filename):
  15. return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS
  16. @app.route('/researchtopicmanage')
  17. def researchtopicmanage():
  18. results = loadAllResearchTopic_ForMang()
  19. return render_template('admin/a_researchtopic_manage.html', results= results)
  20. #新加项目
  21. @app.route('/newresearchtopic')
  22. def newresearchtopic():
  23. if 'username' in session:
  24. researcharea = loadAllResearchArea()
  25. return render_template('admin/a_researchtopic_edit.html', researcharea = researcharea, status="add")
  26. else:
  27. flash('登录失败, 请重新登录')
  28. return redirect(url_for('adminlogin'))
  29. #修改项目
  30. @app.route('/loadresearchtopicforedit/<RTID>', methods = ['POST','GET'])
  31. def editproject(RTID):
  32. if 'username' in session:
  33. researchtopic = loadResearchTopicByID(RTID)
  34. researcharea = loadAllResearchArea()
  35. return render_template('admin/a_researchtopic_edit.html', researcharea = researcharea, researchtopic = researchtopic, status='edit')
  36. else:
  37. flash('登录失败, 请重新登录')
  38. return redirect(url_for('adminlogin'))
  39. # 新加和修改
  40. @app.route('/editresearchtopic.do', methods = ['POST'])
  41. def addresearchtopic_do():
  42. if request.method == 'POST':
  43. RAID = request.form.get('txt_RAID')
  44. RTNameCN = request.form['txt_RTNameCN'].strip()
  45. RTNameEN = request.form['txt_RTNameEN'].strip()
  46. RTAbstractCN = cleanText(request.form['txt_RTAbstractCN'].strip())
  47. RTAbstractEN = cleanText(request.form['txt_RTAbstractEN'].strip())
  48. RTImage = request.form['txt_RTImage'].strip()
  49. RTContent = request.form['txt_RTContent'].strip()
  50. RTOrder = request.form['txt_RTOrder'].strip()
  51. RTStatus = request.form['txt_RTStatus'].strip()
  52. status = request.form['lbl_status'].strip()
  53. f = request.files['file_proimg']
  54. proimg=""
  55. if (f != None and f.filename !=""):
  56. proimg = uploadimage(f)
  57. if proimg=="":
  58. proimg = RTImage
  59. data=[RAID, RTNameCN, RTNameEN, RTAbstractCN, RTAbstractEN, proimg, RTContent, RTOrder, RTStatus]
  60. if (status == 'add'):
  61. i, msg = add_ResearchTopic(data)
  62. if i > 0:
  63. flash('研究课题添加成功!')
  64. else:
  65. flash('研究课题添加失败!%s' % str(msg))
  66. else:
  67. RTID = request.form['lbl_RTID']
  68. #print("项目序号", lbl_RTID)
  69. data = [RAID, RTNameCN, RTNameEN, RTAbstractCN, RTAbstractEN, proimg, RTContent, RTOrder, RTStatus, RTID]
  70. i, msg = update_ResearchTopic(data)
  71. if i >0:
  72. flash('研究课题修改成功!')
  73. else:
  74. flash('研究课题修改失败!%s' % str(msg))
  75. return redirect(url_for('researchtopicmanage'))
  76. def uploadimage(f):
  77. #f = request.files['file_proimg']
  78. if not (f and allowed_file(f.filename)):
  79. return "False" #jsonify({"error": 1001, "msg": """请检查上传的图片类型,仅限于png、PNG、jpg、JPG、bmp"})
  80. digest = md5(f.filename.encode("utf-8")).hexdigest()
  81. suffix = Path(f.filename).suffix
  82. images_name = datetime.now().strftime('%Y%m%d%H%M%S') + f'{digest}{suffix}'
  83. file_path = os.path.join(app.config['UPLOAD_FOLDER_IMG_ReTopic'], images_name)
  84. f.save(file_path)
  85. return file_path #"Success" #jsonify(file_path)
  86. @app.route('/delresearchtopic/<RTID>', methods = ['POST'])
  87. def delresearchtopic(RTID):
  88. #print("删除项目信息:", RTID)
  89. i, msg = del_ResearchTopic(RTID)
  90. if i > 0:
  91. flash('研究课题删除成功!')
  92. else:
  93. flash('研究课题删除失败!%s' % str(msg))
  94. return redirect(url_for('researchtopicmanage'))
  95. #查看项目信息
  96. @app.route('/viewresearchtopic/<RTID>')
  97. def viewproject(RTID):
  98. if 'username' in session:
  99. researchtopic = loadResearchTopicByID_ForView(RTID)
  100. return render_template('admin/a_researchtopic_view.html', researchtopic=researchtopic)
  101. else:
  102. flash('登录失败, 请重新登录')
  103. return redirect(url_for('adminlogin'))