· 7 years ago · Jun 12, 2018, 09:10 AM
1# -*- coding: utf-8 -*-
2#import pyslideshare
3#
4#app = Flask(__name__)
5#
6#api_key = '54lpRVJG'
7#secret_key = 'b7Vmgt7f'
8#obj = pyslideshare.pyslideshare(locals(), verbose=True)
9
10from datetime import datetime
11from flask import Flask, request, flash, url_for, redirect, \
12 render_template
13from flaskext.sqlalchemy import SQLAlchemy
14import default_settings
15
16app = Flask(__name__)
17app.config.from_object(default_settings)
18db = SQLAlchemy(app)
19
20class Todo(db.Model):
21 __tablename__ = 'todos'
22 id = db.Column('todo_id', db.Integer, primary_key=True)
23 title = db.Column(db.String(60))
24 text = db.Column(db.String)
25 done = db.Column(db.Boolean)
26 pub_date = db.Column(db.DateTime)
27
28 def __init__(self, title, text):
29 self.title = title
30 self.text = text
31 self.done = False
32 self.pub_date = datetime.utcnow()
33
34@app.route('/', defaults={'page':1})
35@app.route('/<int:page>')
36def show_all(page):
37 pagination = Todo.query.paginate(page=page, per_page=2)
38 if not pagination.total: flash("No posts so far")
39 return render_template('show_all.html',pagination=pagination)
40
41@app.route('/new', methods=['GET', 'POST'])
42def new():
43 if request.method == 'POST':
44 if not request.form['title']:
45 flash('Title is required', 'error')
46 elif not request.form['text']:
47 flash('Text is required', 'error')
48 else:
49 todo = Todo(request.form['title'], request.form['text'])
50 db.session.add(todo)
51 db.session.commit()
52 flash(u'Todo item was successfully created')
53 return redirect(url_for('show_all'))
54 return render_template('new.html')
55
56@app.route('/update', methods=['POST'])
57def update_done():
58 for todo in Todo.query.all():
59 todo.done = ('done.%d' % todo.id) in request.form
60 flash('Updated status')
61 db.session.commit()
62 return redirect(url_for('show_all'))
63
64if __name__ == '__main__':
65 app.run()