from flask import flash, render_template, session, request, redirect, url_for, jsonify from admin.patentinfo 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 # 设置允许的文件格式 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('/patentinfomanage') def patentinfomanage(): if 'username' in session: results = loadallpatents() return render_template('admin/a_patent_manage.html',results = results ) else: flash('登录失败, 请重新登录') return redirect(url_for('adminlogin')) #添加专利 @app.route('/newpatentinfo') def newpatentinfo(): if 'username' in session: researchtopic = loadAllResearchTopic() return render_template('admin/a_patent_edit.html', researchtopic=researchtopic, patentinfo=None, status="add") else: flash('登录失败, 请重新登录') return redirect(url_for('adminlogin')) #查看专利 @app.route('/loadpatentinfoforedit/', methods = ['POST','GET']) def loadpatentinfoforedit(pid): if 'username' in session: researchtopic = loadAllResearchTopic() patentinfo = loadPatentInfoByID(pid) return render_template('admin/a_patent_edit.html', researchtopic=researchtopic, patentinfo = patentinfo, status="edit") else: flash('登录失败, 请重新登录') return redirect(url_for('adminlogin')) #PatentID, RTID, PatentName, AppNo, PubNo, PatentAbstract, PatentImage, PatentConent, PatentType, AppDate, PubDate, Patentee, Authors, PatentStatus, PStatus #编辑专利信息 @app.route('/editpatentinfo.do', methods = ['POST']) def editpatentinfo(): if request.method == 'POST': status = request.form['lbl_status'] rtid = request.form.get('txt_RTID') patentname = request.form['txt_PatentName'] appno = request.form['txt_AppNo'] pubno = request.form['txt_PubNo'] patentabstract = request.form['txt_PatentAbstract'] patentimage = request.form['txt_PatentImage'] patentconent = request.form['txt_PatentConent'] patenttype = request.form['txt_PatentType'] appdate = request.form['txt_AppDate'] pubdate = request.form['txt_PubDate'] patentee = request.form['txt_Patentee'] authors = request.form['txt_Authors'] patentstatus = request.form.get('txt_PatentStatus') pstatus = request.form.get('txt_PStatus') f = request.files['file_proimg'] proimg = "" if (f != None and f.filename != ""): proimg = uploadimage(f) if proimg == "": proimg = patentimage if( status =='add'): data = [rtid, patentname, appno, pubno, patentabstract, proimg, patentconent, patenttype, appdate, pubdate, patentee, authors, patentstatus, pstatus] i, msg = add_patentinfo(data) if i >0: flash('专利信息添加成功!') else: flash('专利信息添加失败!%s' % str(msg)) elif (status == 'edit'): pid = request.form['lbl_PatentID'] data = [rtid, patentname, appno, pubno, patentabstract, proimg, patentconent, patenttype, appdate, pubdate, patentee, authors, patentstatus, pstatus, pid] i, msg = update_patentinfo(data) if i > 0: flash('专利信息修改成功!') else: flash('专利信息修改失败!%s' % str(msg)) return redirect(url_for('patentinfomanage')) 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_Patent'], images_name) f.save(file_path) return file_path #"Success" #jsonify(file_path) #查看专利 @app.route('/viewpatentinfo/', methods = ['POST','GET']) def viewpatentinfo(pid): if 'username' in session: patentinfo = loadPatentwithRTNamebyID(pid) return render_template('admin/a_patent_view.html', patentinfo = patentinfo) else: flash('登录失败, 请重新登录') return redirect(url_for('adminlogin')) #删除专利信息 @app.route('/delpatentinfo/', methods=['POST']) def delpatentinfo(pid): i, msg = del_patent(pid) if i > 0: flash('专利信息删除成功!') else: flash('专利信息删除失败!%s' % str(msg)) return redirect(url_for('patentinfomanage'))