diff options
author | ubq323 <ubq323> | 2021-05-23 20:23:54 +0000 |
---|---|---|
committer | ubq323 <ubq323> | 2021-05-23 20:23:54 +0000 |
commit | 78bee4ec778947df35fa47e29282a60aec5a7acd (patch) | |
tree | 533cd1e3b9aad1e84aa0fe21dea8ecac177a2550 | |
parent | eb298f0c63eb6ac5547a6a7a0086e5e086ad5abc (diff) |
threads etc
-rw-r--r-- | apioforum/__init__.py | 9 | ||||
-rw-r--r-- | apioforum/auth.py | 7 | ||||
-rw-r--r-- | apioforum/db.py | 3 | ||||
-rw-r--r-- | apioforum/templates/base.html | 2 | ||||
-rw-r--r-- | apioforum/templates/view_thread.html | 7 | ||||
-rw-r--r-- | apioforum/thread.py | 11 |
6 files changed, 22 insertions, 17 deletions
diff --git a/apioforum/__init__.py b/apioforum/__init__.py index df7185b..e4bea05 100644 --- a/apioforum/__init__.py +++ b/apioforum/__init__.py @@ -29,13 +29,4 @@ def create_app(): from . import thread app.register_blueprint(thread.bp) - @app.route("/") - def main(): - return "the" - - @app.route("/b") - def b(): - db=get_db() - return str(db.execute("select 2 + 2;").fetchone()[0]) - return app diff --git a/apioforum/auth.py b/apioforum/auth.py index fe03264..49808ea 100644 --- a/apioforum/auth.py +++ b/apioforum/auth.py @@ -75,9 +75,14 @@ def load_user(): if username is None: g.user = None else: - g.user = get_db().execute( + row = get_db().execute( "SELECT * FROM users WHERE username = ?;", (username,) ).fetchone() + if row is None: + g.user = None + else: + g.user = row['username'] + def login_required(view): @functools.wraps(view) diff --git a/apioforum/db.py b/apioforum/db.py index 31eb8ef..9db27db 100644 --- a/apioforum/db.py +++ b/apioforum/db.py @@ -37,8 +37,9 @@ CREATE TABLE posts ( content TEXT, thread INTEGER NOT NULL REFERENCES threads(id), author TEXT NOT NULL REFERENCES users(username), - idx INTEGER NOT NULL + created TIMESTAMP NOT NULL ); + CREATE INDEX posts_thread_idx ON posts (thread); """, ] diff --git a/apioforum/templates/base.html b/apioforum/templates/base.html index 6660686..28fd055 100644 --- a/apioforum/templates/base.html +++ b/apioforum/templates/base.html @@ -10,7 +10,7 @@ <h1>apioforum</h1> <ul> {% if g.user %} - <li>{{ g.user['username'] }}</li> + <li>{{ g.user }}</li> <li><a href="{{ url_for('auth.logout') }}">logout</a></li> {% else %} <li><a href="{{ url_for('auth.login') }}">login</a></li> diff --git a/apioforum/templates/view_thread.html b/apioforum/templates/view_thread.html index 34faeea..ebbcd3b 100644 --- a/apioforum/templates/view_thread.html +++ b/apioforum/templates/view_thread.html @@ -8,11 +8,16 @@ <p>by {{thread.creator}}</p> <dl> {% for post in posts %} -<dt>{{post.author}}</dt> +<dt>{{post.author}} {{post.created}}</dt> <dd>{{post.content}}</dd> {% else %} <dt>there weren't</dt> <dd>any posts</dd> {% endfor %} </dl> +{% if g.user %} +<p>loggedi n as {{ g.user }}</p> +{% else %} +<p>not logged in</p> +{% endif %} {% endblock %} diff --git a/apioforum/thread.py b/apioforum/thread.py index 24b7766..2276e84 100644 --- a/apioforum/thread.py +++ b/apioforum/thread.py @@ -1,19 +1,22 @@ # view posts in thread from flask import ( - Blueprint, render_template + Blueprint, render_template, abort ) from .db import get_db bp = Blueprint("thread", __name__, url_prefix="/thread") -@bp.route("/view/<int:thread_id>") +@bp.route("/<int:thread_id>") def view_thread(thread_id): db = get_db() thread = db.execute("SELECT * FROM threads WHERE id = ?;",(thread_id,)).fetchone() if thread is None: abort(404) else: - posts = db.execute("SELECT * FROM posts WHERE thread = ? ORDER BY idx;",(thread_id,)).fetchall() + posts = db.execute( + "SELECT * FROM posts WHERE thread = ? ORDER BY created ASC;", + (thread_id,) + ).fetchall() return render_template("view_thread.html",posts=posts,thread=thread) - + |