routes.py 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. from flask import render_template, Blueprint, request, redirect, url_for
  2. from flask.wrappers import Response
  3. import requests
  4. import os
  5. import fnmatch
  6. from backstage.blogs.forms import BlogCreateForm
  7. from backstage.utils import get_now_time
  8. from backstage.utils.routes import create_content, remove_content, get_trans_title_url_name
  9. from backstage.config import PORTAL_SERVER, UPLOAD_PATH_MAP
  10. blogs_app = Blueprint('blogs', __name__)
  11. @blogs_app.route('/backstage/blogs', methods=['GET'])
  12. def blog_list():
  13. response = requests.get('{}contents?url=/blog'.format(PORTAL_SERVER))
  14. if response.status_code == 200:
  15. sortedData = sorted(response.json(), key=lambda x: x['date'], reverse=True)
  16. return render_template('blogs.html',
  17. title='設計專欄',
  18. legend='設計專欄列表',
  19. blogs=sortedData,
  20. length=len(response.json()),
  21. form=BlogCreateForm())
  22. @blogs_app.route('/backstage/blog/create/', methods=['POST'])
  23. def create():
  24. form = BlogCreateForm()
  25. front_matter = '''---
  26. title: "{}"\n\
  27. date: {}\n\
  28. draft: {}\n\
  29. type: "{}"\n\
  30. url: "{}"\n\
  31. image: "/img/blog/{}"\n\
  32. categories: ["{}"]\n\
  33. ---'''.format(form.title.data,
  34. get_now_time(),
  35. 'false',
  36. 'blog',
  37. '/blog/{}'.format(get_trans_title_url_name(form.title.data)),
  38. form.image.data.filename,
  39. form.categories.data)
  40. data = {'frontMatter': front_matter,
  41. 'name': get_trans_title_url_name(request.form['title']),
  42. 'type': 'blog',
  43. 'categories': form.categories.data}
  44. print(form.title.data)
  45. return create_content(data, form.image.data)
  46. @blogs_app.route('/backstage/blog/createCat/', methods=['GET'])
  47. def createCat():
  48. #title = ""
  49. front_matter = '''---
  50. title: "{}"\n\
  51. date: {}\n\
  52. draft: {}\n\
  53. type: "{}"\n\
  54. categories: ["{}"]\n\
  55. ---'''.format(request.args["title"],
  56. get_now_time(),
  57. 'false',
  58. 'blog',
  59. get_trans_title_url_name(request.args["title"]))
  60. CatPath = UPLOAD_PATH_MAP[0][0]+"../blog/" + get_trans_title_url_name(request.args["title"])
  61. print(CatPath)
  62. if not os.path.exists(CatPath):
  63. os.mkdir(CatPath)
  64. with open(os.path.join(CatPath, 'category.md'), 'w', encoding="utf-8") as md:
  65. md.write(front_matter)
  66. print("11")
  67. return Response("你好", 200)
  68. @blogs_app.route('/backstage/blog/remove', methods=['POST'])
  69. def remove():
  70. remove_content()
  71. return redirect(url_for('blogs.blog_list'))
  72. """ def GetCategories():
  73. GetCategories
  74. configfiles = [os.path.join(dirpath, f)
  75. for dirpath, dirnames, files in os.walk(UPLOAD_PATH_MAP+'../blog')
  76. for f in fnmatch.filter(files, 'category.md')]
  77. return configfiles """