routes.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. from flask import flash, request, redirect, url_for
  2. import requests
  3. from time import sleep
  4. from backstage.utils import translate
  5. TYPE_URL_FOR = {'collection': 'collections.collection_list',
  6. 'blog': 'blogs.blog_list'}
  7. def create_content(data, image_data):
  8. new_response = requests.post('http://127.0.0.1:5000/api/new_content', json=data)
  9. if new_response.status_code == 200:
  10. requests.post(
  11. 'http://127.0.0.1:5000/api/upload/static/img?type={}&filename={}'.format(
  12. data.get('type'), image_data.filename), files={'image': image_data})
  13. sleep(1) # sleep for waiting for new_content API generating content successfully.
  14. return redirect(url_for('editor.editor', url='/{}/{}'.format(
  15. data.get('type'), get_trans_title_url_name(data.get('name')))))
  16. else:
  17. flash('新增文章失敗', 'danger')
  18. return redirect(url_for(TYPE_URL_FOR.get(data.get('type'))))
  19. def remove_content():
  20. url = request.args.get('url', type=str)
  21. response = requests.delete('http://127.0.0.1:5000/api/contents?url={}'.format(url))
  22. if response.status_code == 200:
  23. flash('刪除文章成功', 'success')
  24. else:
  25. flash('刪除文章失敗', 'danger')
  26. def get_trans_title_url_name(title):
  27. return translate(title).replace(' ', '_')