from flask import flash, request, redirect, url_for import requests from time import sleep from backstage.utils import translate TYPE_URL_FOR = {'collection': 'collections.collection_list', 'blog': 'blogs.blog_list'} def create_content(data, image_data): new_response = requests.post('http://127.0.0.1:5000/api/new_content', json=data) if new_response.status_code == 200: requests.post( 'http://127.0.0.1:5000/api/upload/static/img?type={}&filename={}'.format( data.get('type'), image_data.filename), files={'image': image_data}) sleep(1) # sleep for waiting for new_content API generating content successfully. return redirect(url_for('editor.editor', url='/{}/{}'.format( data.get('type'), get_trans_title_url_name(data.get('name'))))) else: flash('新增文章失敗', 'danger') return redirect(url_for(TYPE_URL_FOR.get(data.get('type')))) def remove_content(): url = request.args.get('url', type=str) response = requests.delete('http://127.0.0.1:5000/api/contents?url={}'.format(url)) if response.status_code == 200: flash('刪除文章成功', 'success') else: flash('刪除文章失敗', 'danger') def get_trans_title_url_name(title): return translate(title).replace(' ', '_')