from flask import Flask, flash, render_template, session, request, redirect, url_for, jsonify from admin.knowledgetopictype import * from admin.knowledgetopic import * from flask import current_app as app 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('/knowledgetopicmanage') def knowledgetopicmanage(): results = loadAllKnowledgeTopicWithKTTName() return render_template('admin/a_knowledgetopic_manage.html', results=results) #打开课程添加页面 @app.route('/newknowledgetopic', methods=['POST', 'GET']) def newknowledgetopic(): knowledgetopictype = loadAllKnowledgeTopicType_4Topic() return render_template('admin/a_knowledgetopic_edit.html', knowledgetopictype=knowledgetopictype, knowledgetopic=None, status='add') #打开课程编辑页面 @app.route('/editknowledgetopic/', methods=['POST', 'GET']) def editknowledgetopic(ktid): knowledgetopictype = loadAllKnowledgeTopicType_4Topic() knowledgetopic = loadKnowledgeTopicbyID(ktid) return render_template('admin/a_knowledgetopic_edit.html', knowledgetopictype=knowledgetopictype, knowledgetopic=knowledgetopic, status='edit') #KTID, KTTID, KTName, KTIntro, KTImage, KTIsShow, KTOrder, KTStatus #添加或者修改知识专题 @app.route('/editknowledgetopic.do', methods=['POST']) def addcsinfo(): if request.method == 'POST': status = request.form['lbl_status'] kttid = request.form.get('txt_KTTID') ktname = request.form['txt_KTName'] ktintro = request.form['txt_KTIntro'] ktimage = request.form['txt_KTImage'] ktisshow = request.form.get('txt_KTIsShow') ktorder = request.form.get('txt_KTOrder') ktstatus = request.form.get('txt_KTStatus') f = request.files['file_proimg'] proimg = "" if (f != None and f.filename != ""): proimg = uploadimage(f) if proimg == "": proimg = ktimage if status == 'add': data = [kttid, ktname, ktintro, proimg, ktisshow, ktorder, ktstatus] #print(status, "知识专题", data) i, msg = add_KnowledgeTopic(data) if i > 0: flash('知识专题添加成功!' + str(msg)) return redirect(url_for('knowledgetopicmanage')) else: flash('知识专题添加失败!' + str(msg)) return redirect(url_for('newknowledgetopic')) if status == 'edit': ktid = request.form['lbl_KTID'] data = [kttid, ktname, ktintro, proimg, ktisshow, ktorder, ktstatus, ktid] i, msg = update_KnowledgeTopic(data) if i > 0: flash('知识专题修改成功!' + str(msg)) return redirect(url_for('knowledgetopicmanage')) else: flash('知识专题修改失败!' + str(msg)) #url = "editknowledgetopic/1" #print(url) return redirect(url_for('knowledgetopicmanage')) 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_Knowtopic'], images_name) f.save(file_path) return file_path #"Success" #jsonify(file_path) #打开课程查看页面 @app.route('/viewknowledgetopic/', methods=['POST', 'GET']) def viewknowledgetopic(ktid): if 'username' in session: knowledgetopic = loadKnowledgeTopicwithKTTNamebyID(ktid) return render_template('admin/a_knowledgetopic_view.html', knowledgetopic=knowledgetopic) else: flash('查看失败, 请重新登录') return redirect(url_for('adminlogin')) #删除课程 @app.route('/delknowledgetopic/', methods=['POST','GET']) def delknowledgetopic(ktid): i, msg = del_KnowledgeTopic(ktid) if i > 0: flash('删除成功!' +str(msg)) else: flash('删除失败!' + str(msg)) return redirect(url_for('knowledgetopicmanage'))