routes.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from flask import render_template, Blueprint, request, redirect, url_for
  2. import requests
  3. from backstage.blogs.forms import BlogCreateForm
  4. from backstage.utils import get_now_time
  5. from backstage.utils.routes import create_content, remove_content, get_trans_title_url_name
  6. from backstage.config import PORTAL_SERVER
  7. blogs_app = Blueprint('blogs', __name__)
  8. @blogs_app.route('/backstage/blogs')
  9. def blog_list():
  10. response = requests.get('{}contents?url=/blog'.format(PORTAL_SERVER))
  11. if response.status_code == 200:
  12. return render_template('blogs.html',
  13. title='設計專欄',
  14. legend='設計專欄列表',
  15. blogs=response.json(),
  16. length=len(response.json()),
  17. form=BlogCreateForm())
  18. @blogs_app.route('/backstage/blog/create/', methods=['POST'])
  19. def create():
  20. form = BlogCreateForm()
  21. front_matter = '''---
  22. title: "{}"\n\
  23. date: {}\n\
  24. draft: {}\n\
  25. type: "{}"\n\
  26. url: "{}"\n\
  27. image: "/img/blog/{}"\n\
  28. categories: ["{}"]\n\
  29. ---'''.format(form.title.data,
  30. get_now_time(),
  31. 'false',
  32. 'blog',
  33. '/blog/{}'.format(get_trans_title_url_name(form.title.data)),
  34. form.image.data.filename,
  35. form.categories.data)
  36. data = {'frontMatter': front_matter,
  37. 'name': request.form['title'],
  38. 'type': 'blog',
  39. 'categories': form.categories.data}
  40. return create_content(data, form.image.data)
  41. @blogs_app.route('/backstage/blog/remove', methods=['POST'])
  42. def remove():
  43. remove_content()
  44. return redirect(url_for('blogs.blog_list'))