/
app.py
78 lines (61 loc) · 2.06 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
from flask import Flask, render_template, request, redirect, url_for
from sqlalchemy import create_engine
import os
# get environmental variable for database connection.
# If you're running this locally, check the README for more info
db_connection = os.environ['DATABASE_URL']
#engine = create_engine('sqlite:///foo.db', echo=True)
engine = create_engine(db_connection)
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
session = Session()
app = Flask(__name__)
app.debug = True
app.secret_key = 'M\x97\xca\x83{\xcf\xf7Z: JF\x96\x19\xc6\x86\xe0|\x97\x94\xa9\xac\x90 '
# TODO
# - Correct validators
# - Add/remove fields
from forms import LessonForm
from models import Base, Lesson, Step
Base.metadata.create_all(engine)
# Our Routes
@app.route("/")
def home():
return render_template('index.html')
@app.route("/create", methods=["GET", "POST"])
def create():
form = LessonForm()
if form.validate_on_submit():
print request.form
#4/0
lesson = Lesson()
lesson.title = request.form.get('title')
lesson.time = request.form.get('time')
lesson.audience = request.form.get('audience')
lesson.goals = request.form.get('goals')
lesson.summary = request.form.get('summary')
session.add(lesson)
session.flush()
for index,step_entry in enumerate(form.steps.entries):
step = Step()
step.title = step_entry.title.data
step.body = step_entry.body.data
step.order = index
step.lesson = lesson
session.add(step)
session.flush()
session.commit()
return redirect(url_for('view', uid=lesson.id))
return render_template('create.html', form=form)
@app.route("/<int:uid>/view")
def view(uid):
lesson = session.query(Lesson).get(uid)
if lesson:
return render_template('view.html', lesson=lesson)
else:
return "Not found", 404
@app.route("/<int:uid>/edit")
def edit(uid):
return render_template('edit.html', uid=uid)
if __name__ == "__main__":
app.run()