from flask import flash, render_template, session, request, redirect, url_for, jsonify from admin.researcharea import * from admin.researchtopic 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 from admin.dboper import * # 设置允许的文件格式 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('/researchtopicmanage') def researchtopicmanage(): results = loadAllResearchTopic_ForMang() return render_template('admin/a_researchtopic_manage.html', results= results) #新加项目 @app.route('/newresearchtopic') def newresearchtopic(): if 'username' in session: researcharea = loadAllResearchArea() return render_template('admin/a_researchtopic_edit.html', researcharea = researcharea, status="add") else: flash('登录失败, 请重新登录') return redirect(url_for('adminlogin')) #修改项目 @app.route('/loadresearchtopicforedit/', methods = ['POST','GET']) def editproject(RTID): if 'username' in session: researchtopic = loadResearchTopicByID(RTID) researcharea = loadAllResearchArea() return render_template('admin/a_researchtopic_edit.html', researcharea = researcharea, researchtopic = researchtopic, status='edit') else: flash('登录失败, 请重新登录') return redirect(url_for('adminlogin')) # 新加和修改 @app.route('/editresearchtopic.do', methods = ['POST']) def addresearchtopic_do(): if request.method == 'POST': RAID = request.form.get('txt_RAID') RTNameCN = request.form['txt_RTNameCN'].strip() RTNameEN = request.form['txt_RTNameEN'].strip() RTAbstractCN = cleanText(request.form['txt_RTAbstractCN'].strip()) RTAbstractEN = cleanText(request.form['txt_RTAbstractEN'].strip()) RTImage = request.form['txt_RTImage'].strip() RTContent = request.form['txt_RTContent'].strip() RTOrder = request.form['txt_RTOrder'].strip() RTStatus = request.form['txt_RTStatus'].strip() status = request.form['lbl_status'].strip() f = request.files['file_proimg'] proimg="" if (f != None and f.filename !=""): proimg = uploadimage(f) if proimg=="": proimg = RTImage data=[RAID, RTNameCN, RTNameEN, RTAbstractCN, RTAbstractEN, proimg, RTContent, RTOrder, RTStatus] if (status == 'add'): i, msg = add_ResearchTopic(data) if i > 0: flash('研究课题添加成功!') else: flash('研究课题添加失败!%s' % str(msg)) else: RTID = request.form['lbl_RTID'] #print("项目序号", lbl_RTID) data = [RAID, RTNameCN, RTNameEN, RTAbstractCN, RTAbstractEN, proimg, RTContent, RTOrder, RTStatus, RTID] i, msg = update_ResearchTopic(data) if i >0: flash('研究课题修改成功!') else: flash('研究课题修改失败!%s' % str(msg)) return redirect(url_for('researchtopicmanage')) 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}' file_path = os.path.join(app.config['UPLOAD_FOLDER_IMG_ReTopic'], images_name) f.save(file_path) return file_path #"Success" #jsonify(file_path) @app.route('/delresearchtopic/', methods = ['POST']) def delresearchtopic(RTID): #print("删除项目信息:", RTID) i, msg = del_ResearchTopic(RTID) if i > 0: flash('研究课题删除成功!') else: flash('研究课题删除失败!%s' % str(msg)) return redirect(url_for('researchtopicmanage')) #查看项目信息 @app.route('/viewresearchtopic/') def viewproject(RTID): if 'username' in session: researchtopic = loadResearchTopicByID_ForView(RTID) return render_template('admin/a_researchtopic_view.html', researchtopic=researchtopic) else: flash('登录失败, 请重新登录') return redirect(url_for('adminlogin'))