b_knowledgetopic.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. from flask import Flask, flash, render_template, session, request, redirect, url_for, jsonify
  2. from admin.knowledgetopictype import *
  3. from admin.knowledgetopic import *
  4. from flask import current_app as app
  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. #知识专题
  16. @app.route('/knowledgetopicmanage')
  17. def knowledgetopicmanage():
  18. results = loadAllKnowledgeTopicWithKTTName()
  19. return render_template('admin/a_knowledgetopic_manage.html', results=results)
  20. #打开课程添加页面
  21. @app.route('/newknowledgetopic', methods=['POST', 'GET'])
  22. def newknowledgetopic():
  23. knowledgetopictype = loadAllKnowledgeTopicType_4Topic()
  24. return render_template('admin/a_knowledgetopic_edit.html', knowledgetopictype=knowledgetopictype, knowledgetopic=None, status='add')
  25. #打开课程编辑页面
  26. @app.route('/editknowledgetopic/<ktid>', methods=['POST', 'GET'])
  27. def editknowledgetopic(ktid):
  28. knowledgetopictype = loadAllKnowledgeTopicType_4Topic()
  29. knowledgetopic = loadKnowledgeTopicbyID(ktid)
  30. return render_template('admin/a_knowledgetopic_edit.html', knowledgetopictype=knowledgetopictype, knowledgetopic=knowledgetopic, status='edit')
  31. #KTID, KTTID, KTName, KTIntro, KTImage, KTIsShow, KTOrder, KTStatus
  32. #添加或者修改知识专题
  33. @app.route('/editknowledgetopic.do', methods=['POST'])
  34. def addcsinfo():
  35. if request.method == 'POST':
  36. status = request.form['lbl_status']
  37. kttid = request.form.get('txt_KTTID')
  38. ktname = request.form['txt_KTName']
  39. ktintro = request.form['txt_KTIntro']
  40. ktimage = request.form['txt_KTImage']
  41. ktisshow = request.form.get('txt_KTIsShow')
  42. ktorder = request.form.get('txt_KTOrder')
  43. ktstatus = request.form.get('txt_KTStatus')
  44. f = request.files['file_proimg']
  45. proimg = ""
  46. if (f != None and f.filename != ""):
  47. proimg = uploadimage(f)
  48. if proimg == "":
  49. proimg = ktimage
  50. if status == 'add':
  51. data = [kttid, ktname, ktintro, proimg, ktisshow, ktorder, ktstatus]
  52. #print(status, "知识专题", data)
  53. i, msg = add_KnowledgeTopic(data)
  54. if i > 0:
  55. flash('知识专题添加成功!' + str(msg))
  56. return redirect(url_for('knowledgetopicmanage'))
  57. else:
  58. flash('知识专题添加失败!' + str(msg))
  59. return redirect(url_for('newknowledgetopic'))
  60. if status == 'edit':
  61. ktid = request.form['lbl_KTID']
  62. data = [kttid, ktname, ktintro, proimg, ktisshow, ktorder, ktstatus, ktid]
  63. i, msg = update_KnowledgeTopic(data)
  64. if i > 0:
  65. flash('知识专题修改成功!' + str(msg))
  66. return redirect(url_for('knowledgetopicmanage'))
  67. else:
  68. flash('知识专题修改失败!' + str(msg))
  69. #url = "editknowledgetopic/1"
  70. #print(url)
  71. return redirect(url_for('knowledgetopicmanage'))
  72. def uploadimage(f):
  73. #f = request.files['file_proimg']
  74. if not (f and allowed_file(f.filename)):
  75. return "False" #jsonify({"error": 1001, "msg": """请检查上传的图片类型,仅限于png、PNG、jpg、JPG、bmp"})
  76. digest = md5(f.filename.encode("utf-8")).hexdigest()
  77. suffix = Path(f.filename).suffix
  78. images_name = datetime.now().strftime('%Y%m%d%H%M%S') + f'{digest}{suffix}'
  79. #images_name = datetime.now().strftime('%Y%m%d%H%M%S') + '11'
  80. file_path = os.path.join(app.config['UPLOAD_FOLDER_IMG_Knowtopic'], images_name)
  81. f.save(file_path)
  82. return file_path #"Success" #jsonify(file_path)
  83. #打开课程查看页面
  84. @app.route('/viewknowledgetopic/<ktid>', methods=['POST', 'GET'])
  85. def viewknowledgetopic(ktid):
  86. if 'username' in session:
  87. knowledgetopic = loadKnowledgeTopicwithKTTNamebyID(ktid)
  88. return render_template('admin/a_knowledgetopic_view.html', knowledgetopic=knowledgetopic)
  89. else:
  90. flash('查看失败, 请重新登录')
  91. return redirect(url_for('adminlogin'))
  92. #删除课程
  93. @app.route('/delknowledgetopic/<ktid>', methods=['POST','GET'])
  94. def delknowledgetopic(ktid):
  95. i, msg = del_KnowledgeTopic(ktid)
  96. if i > 0:
  97. flash('删除成功!' +str(msg))
  98. else:
  99. flash('删除失败!' + str(msg))
  100. return redirect(url_for('knowledgetopicmanage'))