Skip to content

Instantly share code, notes, and snippets.

@vihar
Created May 24, 2018 07:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vihar/e98fe7af0c207f46fe6448a62772c279 to your computer and use it in GitHub Desktop.
Save vihar/e98fe7af0c207f46fe6448a62772c279 to your computer and use it in GitHub Desktop.
from flask import Flask, request, render_template, url_for, redirect
from flask_sqlalchemy import SQLAlchemy
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://localhost/appdb'
app.config.update(dict(
SECRET_KEY="powerful secretkey",
WTF_CSRF_SECRET_KEY="a csrf secret key"
))
db = SQLAlchemy(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
class Post(db.Model):
__tablename__ = 'post'
id = db.Column(db.Integer(), primary_key=True)
title = db.Column(db.String(80), unique=True)
post_text = db.Column(db.String(255))
def __init__(self, title, post_text):
self.title = title
self.post_text = post_text
# Declaring Flask WTF-Form
class PostForm(FlaskForm):
title = StringField('Title', validators=[DataRequired()])
post_text = StringField('Post_Text', validators=[DataRequired()])
@app.route('/')
def index():
return "Hello World"
@app.route('/addpost', methods=['GET', 'POST'])
def add_post():
postform = PostForm()
if request.method == 'POST':
pf = Post(
postform.title.data,
postform.post_text.data,
)
db.session.add(pf)
db.session.commit()
return redirect(url_for('view_posts'))
return render_template('post_form.html', postform=postform)
@app.route('/posts', methods=['GET', 'POST'])
def view_posts():
posts = Post.query.all()
return render_template('view_posts.html', posts=posts)
app = Flask(__name__)
if __name__ == "__main__":
manager.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment