from flask import Flask, render_template, request, redirect, url_for from markdown import markdown, Markdown from config import config from models import Post, db from forms import PostForm import os app = Flask(__name__) app.config.from_object('config') SECRET_KEY = os.urandom(32) app.config['SECRET_KEY'] = SECRET_KEY app.jinja_options = app.jinja_options.copy() app.jinja_env.add_extension(Markdown) app.jinja_env.filters["markdown"] = markdown @app.before_request def before_request(): db.connect() @app.after_request def after_request(response): db.close() return response @app.route('/') def index(): posts = Post.select().order_by(Post.created_at.desc()) return render_template('index.html', posts=posts) @app.route('/post/') def post(post_id): post = Post.get(Post.id == post_id) return render_template('post.html', post=post) @app.route('/create', methods=['GET', 'POST']) def create(): form = PostForm() if form.validate_on_submit(): Post.create(title=form.title.data, content=form.content.data) return redirect(url_for('index')) return render_template('create.html', form=form) if __name__ == '__main__': app.run(debug=True, port=5052)