b_patentinfo.py 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. from flask import flash, render_template, session, request, redirect, url_for, jsonify
  2. from admin.patentinfo 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. # 设置允许的文件格式
  11. ALLOWED_EXTENSIONS = set(['png', 'jpg', 'JPG', 'PNG', 'bmp'])
  12. #判断文件格式
  13. def allowed_file (filename):
  14. return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS
  15. #--------------------专利信息管理------------------------------#
  16. @app.route('/patentinfomanage')
  17. def patentinfomanage():
  18. if 'username' in session:
  19. results = loadallpatents()
  20. return render_template('admin/a_patent_manage.html',results = results )
  21. else:
  22. flash('登录失败, 请重新登录')
  23. return redirect(url_for('adminlogin'))
  24. #添加专利
  25. @app.route('/newpatentinfo')
  26. def newpatentinfo():
  27. if 'username' in session:
  28. researchtopic = loadAllResearchTopic()
  29. return render_template('admin/a_patent_edit.html', researchtopic=researchtopic, patentinfo=None, status="add")
  30. else:
  31. flash('登录失败, 请重新登录')
  32. return redirect(url_for('adminlogin'))
  33. #查看专利
  34. @app.route('/loadpatentinfoforedit/<pid>', methods = ['POST','GET'])
  35. def loadpatentinfoforedit(pid):
  36. if 'username' in session:
  37. researchtopic = loadAllResearchTopic()
  38. patentinfo = loadPatentInfoByID(pid)
  39. return render_template('admin/a_patent_edit.html', researchtopic=researchtopic, patentinfo = patentinfo, status="edit")
  40. else:
  41. flash('登录失败, 请重新登录')
  42. return redirect(url_for('adminlogin'))
  43. #PatentID, RTID, PatentName, AppNo, PubNo, PatentAbstract, PatentImage, PatentConent, PatentType, AppDate, PubDate, Patentee, Authors, PatentStatus, PStatus
  44. #编辑专利信息
  45. @app.route('/editpatentinfo.do', methods = ['POST'])
  46. def editpatentinfo():
  47. if request.method == 'POST':
  48. status = request.form['lbl_status']
  49. rtid = request.form.get('txt_RTID')
  50. patentname = request.form['txt_PatentName']
  51. appno = request.form['txt_AppNo']
  52. pubno = request.form['txt_PubNo']
  53. patentabstract = request.form['txt_PatentAbstract']
  54. patentimage = request.form['txt_PatentImage']
  55. patentconent = request.form['txt_PatentConent']
  56. patenttype = request.form['txt_PatentType']
  57. appdate = request.form['txt_AppDate']
  58. pubdate = request.form['txt_PubDate']
  59. patentee = request.form['txt_Patentee']
  60. authors = request.form['txt_Authors']
  61. patentstatus = request.form.get('txt_PatentStatus')
  62. pstatus = request.form.get('txt_PStatus')
  63. f = request.files['file_proimg']
  64. proimg = ""
  65. if (f != None and f.filename != ""):
  66. proimg = uploadimage(f)
  67. if proimg == "":
  68. proimg = patentimage
  69. if( status =='add'):
  70. data = [rtid, patentname, appno, pubno, patentabstract, proimg, patentconent, patenttype, appdate, pubdate, patentee,
  71. authors, patentstatus, pstatus]
  72. i, msg = add_patentinfo(data)
  73. if i >0:
  74. flash('专利信息添加成功!')
  75. else:
  76. flash('专利信息添加失败!%s' % str(msg))
  77. elif (status == 'edit'):
  78. pid = request.form['lbl_PatentID']
  79. data = [rtid, patentname, appno, pubno, patentabstract, proimg, patentconent, patenttype, appdate, pubdate, patentee,
  80. authors, patentstatus, pstatus, pid]
  81. i, msg = update_patentinfo(data)
  82. if i > 0:
  83. flash('专利信息修改成功!')
  84. else:
  85. flash('专利信息修改失败!%s' % str(msg))
  86. return redirect(url_for('patentinfomanage'))
  87. def uploadimage(f):
  88. #f = request.files['file_proimg']
  89. if not (f and allowed_file(f.filename)):
  90. return "False" #jsonify({"error": 1001, "msg": """请检查上传的图片类型,仅限于png、PNG、jpg、JPG、bmp"})
  91. digest = md5(f.filename.encode("utf-8")).hexdigest()
  92. suffix = Path(f.filename).suffix
  93. images_name = datetime.now().strftime('%Y%m%d%H%M%S') + f'{digest}{suffix}'
  94. #images_name = datetime.now().strftime('%Y%m%d%H%M%S') + '11'
  95. file_path = os.path.join(app.config['UPLOAD_FOLDER_IMG_Patent'], images_name)
  96. f.save(file_path)
  97. return file_path #"Success" #jsonify(file_path)
  98. #查看专利
  99. @app.route('/viewpatentinfo/<pid>', methods = ['POST','GET'])
  100. def viewpatentinfo(pid):
  101. if 'username' in session:
  102. patentinfo = loadPatentwithRTNamebyID(pid)
  103. return render_template('admin/a_patent_view.html', patentinfo = patentinfo)
  104. else:
  105. flash('登录失败, 请重新登录')
  106. return redirect(url_for('adminlogin'))
  107. #删除专利信息
  108. @app.route('/delpatentinfo/<pid>', methods=['POST'])
  109. def delpatentinfo(pid):
  110. i, msg = del_patent(pid)
  111. if i > 0:
  112. flash('专利信息删除成功!')
  113. else:
  114. flash('专利信息删除失败!%s' % str(msg))
  115. return redirect(url_for('patentinfomanage'))