b_paperinfo.py 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. from flask import flash, render_template, session, request, redirect, url_for, jsonify
  2. from admin.patentinfo import *
  3. from admin.paperinfo import *
  4. from admin.researchtopic import *
  5. from flask import current_app as app
  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('/paperinfomanage')
  17. def paperinfomanage ():
  18. if 'username' in session:
  19. results = loadallpapers()
  20. return render_template('admin/a_paper_manage.html', results=results)
  21. else:
  22. flash('登录失败, 请重新登录')
  23. return redirect(url_for('adminlogin'))
  24. # 添加论文
  25. @app.route('/newpaperinfo')
  26. def newpaperinfo ():
  27. if 'username' in session:
  28. researchtopic = loadAllResearchTopic()
  29. return render_template('admin/a_paper_edit.html', researchtopic=researchtopic, paperinfo=None, status="add")
  30. else:
  31. flash('登录失败, 请重新登录')
  32. return redirect(url_for('adminlogin'))
  33. # 查看论文
  34. @app.route('/loadpaperinfoforedit/<pid>', methods=['POST', 'GET'])
  35. def loadpaperinfoforedit (pid):
  36. if 'username' in session:
  37. researchtopic = loadAllResearchTopic()
  38. paperinfo = loadPaperbyID(pid)
  39. return render_template('admin/a_paper_edit.html', researchtopic=researchtopic, paperinfo=paperinfo,
  40. status="edit")
  41. else:
  42. flash('登录失败, 请重新登录')
  43. return redirect(url_for('adminlogin'))
  44. # PaperID, RTID, PTitle, PAbstract, PImage, PContent, PubType, Publisher, Pages, PubDate, Authors, PubLink, ArxivLink, CodeLink, PubStatus, PStatus
  45. # 编辑论文信息
  46. @app.route('/editpaperinfo.do', methods=['POST'])
  47. def editpaperinfo ():
  48. if request.method == 'POST':
  49. status = request.form['lbl_status']
  50. rtid = request.form.get('txt_RTID')
  51. title = request.form['txt_PTitle']
  52. abstract = request.form['txt_PAbstract']
  53. pimage = request.form['txt_PImage']
  54. content = request.form['txt_PContent']
  55. pubtype = request.form['txt_PubType']
  56. publisher = request.form['txt_Publisher']
  57. pages = request.form['txt_Pages']
  58. pubyear = request.form['txt_PubYear']
  59. authors = request.form['txt_Authors']
  60. publink = request.form['txt_PubLink']
  61. arxivlink = request.form['txt_ArxivLink']
  62. codelink = request.form['txt_CodeLink']
  63. pubstatus = request.form.get('txt_PubStatus')
  64. pstatus = request.form.get('txt_PStatus')
  65. # print("摘要:"+abstract)
  66. # print("内容:"+ content)
  67. f = request.files['file_proimg']
  68. proimg = ""
  69. if (f != None and f.filename != ""):
  70. proimg = uploadimage(f)
  71. if proimg == "":
  72. proimg = pimage
  73. if (status == 'add'):
  74. data = [rtid, title, abstract, proimg, content, pubtype, publisher, pages, pubyear, authors, publink,
  75. arxivlink, codelink, pubstatus, pstatus]
  76. i, msg = add_paperinfo(data)
  77. if i > 0:
  78. flash('论文信息添加成功!')
  79. else:
  80. flash('论文信息添加失败!%s' % str(msg))
  81. elif (status == 'edit'):
  82. pid = request.form['lbl_PaperID']
  83. data = [rtid, title, abstract, proimg, content, pubtype, publisher, pages, pubyear, authors, publink,
  84. arxivlink, codelink, pubstatus, pstatus, pid]
  85. i, msg = update_paperinfo(data)
  86. if i > 0:
  87. flash('论文信息修改成功!')
  88. else:
  89. flash('论文信息修改失败!%s' % str(msg))
  90. return redirect(url_for('paperinfomanage'))
  91. def uploadimage (f):
  92. # f = request.files['file_proimg']
  93. if not (f and allowed_file(f.filename)):
  94. return "False" # jsonify({"error": 1001, "msg": """请检查上传的图片类型,仅限于png、PNG、jpg、JPG、bmp"})
  95. digest = md5(f.filename.encode("utf-8")).hexdigest()
  96. suffix = Path(f.filename).suffix
  97. images_name = datetime.now().strftime('%Y%m%d%H%M%S') + f'{digest}{suffix}'
  98. # images_name = datetime.now().strftime('%Y%m%d%H%M%S') + '11'
  99. file_path = os.path.join(app.config['UPLOAD_FOLDER_IMG_Paper'], images_name)
  100. f.save(file_path)
  101. return file_path # "Success" #jsonify(file_path)
  102. # 查看论文
  103. @app.route('/viewpaperinfo/<pid>', methods=['POST', 'GET'])
  104. def viewpaperinfo (pid):
  105. if 'username' in session:
  106. paperinfo = loadPaperwithRTNamebyID(pid)
  107. return render_template('admin/a_paper_view.html', paperinfo=paperinfo)
  108. else:
  109. flash('登录失败, 请重新登录')
  110. return redirect(url_for('adminlogin'))
  111. # 删除论文信息
  112. @app.route('/delpaperinfo/<pid>', methods=['POST'])
  113. def delpaperinfo (pid):
  114. i, msg = del_Paper(pid)
  115. if i > 0:
  116. flash('论文信息删除成功!')
  117. else:
  118. flash('论文信息删除失败!%s' % str(msg))
  119. return redirect(url_for('paperinfomanage'))