from flask import render_template, Blueprint, request, redirect, url_for import requests from backstage.blogs.forms import BlogCreateForm from backstage.utils import get_now_time from backstage.utils.routes import create_content, remove_content, get_trans_title_url_name from backstage.config import PORTAL_SERVER blogs_app = Blueprint('blogs', __name__) @blogs_app.route('/backstage/blogs') def blog_list(): response = requests.get('{}contents?url=/blog'.format(PORTAL_SERVER)) if response.status_code == 200: return render_template('blogs.html', title='設計專欄', legend='設計專欄列表', blogs=response.json(), length=len(response.json()), form=BlogCreateForm()) @blogs_app.route('/backstage/blog/create/', methods=['POST']) def create(): form = BlogCreateForm() front_matter = '''--- title: "{}"\n\ date: {}\n\ draft: {}\n\ type: "{}"\n\ url: "{}"\n\ image: "/img/blog/{}"\n\ categories: ["{}"]\n\ ---'''.format(form.title.data, get_now_time(), 'false', 'blog', '/blog/{}'.format(get_trans_title_url_name(form.title.data)), form.image.data.filename, form.categories.data) data = {'frontMatter': front_matter, 'name': request.form['title'], 'type': 'blog', 'categories': form.categories.data} return create_content(data, form.image.data) @blogs_app.route('/backstage/blog/remove', methods=['POST']) def remove(): remove_content() return redirect(url_for('blogs.blog_list'))