diff --git a/squawker/.idea/inspectionProfiles/Project_Default.xml b/squawker/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..5cb71ef --- /dev/null +++ b/squawker/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/squawker/.idea/inspectionProfiles/profiles_settings.xml b/squawker/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..3b31283 --- /dev/null +++ b/squawker/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/squawker/.idea/misc.xml b/squawker/.idea/misc.xml new file mode 100644 index 0000000..d8a4a57 --- /dev/null +++ b/squawker/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/squawker/.idea/modules.xml b/squawker/.idea/modules.xml new file mode 100644 index 0000000..745d5fa --- /dev/null +++ b/squawker/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/squawker/.idea/sqldialects.xml b/squawker/.idea/sqldialects.xml new file mode 100644 index 0000000..217054f --- /dev/null +++ b/squawker/.idea/sqldialects.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/squawker/.idea/squawker.iml b/squawker/.idea/squawker.iml new file mode 100644 index 0000000..63431a1 --- /dev/null +++ b/squawker/.idea/squawker.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/squawker/.idea/workspace.xml b/squawker/.idea/workspace.xml new file mode 100644 index 0000000..fabc75a --- /dev/null +++ b/squawker/.idea/workspace.xml @@ -0,0 +1,278 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1477340696310 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/squawker/schema.sql b/squawker/schema.sql index 5e67ffb..0fba017 100644 --- a/squawker/schema.sql +++ b/squawker/schema.sql @@ -1,3 +1,7 @@ --- TODO change this -DROP TABLE IF EXISTS mytable; -CREATE TABLE mytable (id integer); + +DROP TABLE IF EXISTS squawks; +CREATE TABLE squawks ( + id integer primary key autoincrement, + phrase varchar(140) NOT NULL , + time datetime NOT NULL +); diff --git a/squawker/server.py b/squawker/server.py index 6ff24ba..0e50b68 100644 --- a/squawker/server.py +++ b/squawker/server.py @@ -1,10 +1,18 @@ from flask import Flask, g import sqlite3 - +import datetime # -- leave these lines intact -- +from flask import abort +from flask import redirect +from flask import render_template +from flask import request +from flask import url_for + app = Flask(__name__) +COUNT = 20 + def get_db(): if not hasattr(g, 'sqlite_db'): @@ -34,14 +42,52 @@ def close_connection(exception): db = getattr(g, 'sqlite_db', None) if db is not None: db.close() + + # ------------------------------ + @app.route('/') -def root(): +def show_entries(): + page = 0 + if request.args.get('page'): + page = int(request.args.get('page')) + + start_index = COUNT * page + # print("Page: " + str(page)) + # print("StartIndex: " + str(start_index)) + conn = get_db() - # TODO change this - return "Hello World!" + cur = conn.execute( + 'SELECT id, phrase, time FROM squawks ORDER BY time DESC LIMIT ' + str(COUNT + 1) + ' OFFSET ' + str( + start_index)) + entries = cur.fetchall() + + more = False + less = False + previous_page = None + if len(entries) > COUNT: + more = True + entries.remove(entries[COUNT]) + if page > 0: + less = True + previous_page = page-1 + + return render_template('show_entries.html', entries=entries, more=more, next_page=(page+1), less=less, previous_page=previous_page) + + +@app.route('/add', methods=['POST']) +def add_entry(): + text = request.form['text'] + if len(text) > 140: + abort(400) + return + db = get_db() + db.execute('INSERT INTO squawks (phrase, time) VALUES (?, ?)', [text, datetime.datetime.utcnow()]) + db.commit() + # flash('New entry was successfully posted') + return redirect(url_for('show_entries')) if __name__ == '__main__': diff --git a/squawker/templates/layout.html b/squawker/templates/layout.html new file mode 100644 index 0000000..1834909 --- /dev/null +++ b/squawker/templates/layout.html @@ -0,0 +1,7 @@ + +Squawks + +
+

Squawks - Mario Rial, mr2224

+ {% block body %}{% endblock %} +
diff --git a/squawker/templates/show_entries.html b/squawker/templates/show_entries.html new file mode 100644 index 0000000..d912552 --- /dev/null +++ b/squawker/templates/show_entries.html @@ -0,0 +1,23 @@ +{% extends "layout.html" %} +{% block body %} +
+
+
Text: +
+
+
+
+ + {% if less %} + Previous Page + {% endif %} + {% if more %} + Next Page + {% endif %} +{% endblock %}