aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--famille.py33
1 files changed, 16 insertions, 17 deletions
diff --git a/famille.py b/famille.py
index 8124b58..287de73 100644
--- a/famille.py
+++ b/famille.py
@@ -155,24 +155,23 @@ def add_news():
@app.route('/news/<int:news_id>/', methods=['GET', 'POST'])
@login_required
def show_news(news_id):
- db = get_db()
- news = query_db(db, "SELECT * FROM news LEFT JOIN users "
- "ON news.user_id = users.id "
- "WHERE news.id = ?", (news_id,), True)
+ metadata = get_metadata()
+ users = Table('users', metadata, autoload=True)
+ news = Table('news', metadata, autoload=True)
+ comments = Table('comments', metadata, autoload=True)
+ stmt = select([news]).select_from(news.outerjoin(users)).where(news.c.id == news_id)
+ news_content = query_db(stmt, True)
if request.method == 'GET':
- comments = query_db(db, "SELECT * FROM comments LEFT JOIN users "
- "ON comments.user_id = users.id "
- "WHERE comments.news_id = ? "
- "ORDER BY date", (news_id,))
- return render_template("news/show.html", news=news, comments=comments)
+ stmt = select([comments]).select_from(comments.outerjoin(users)).\
+ where(comments.c.news_id == news_id).order_by(comments.c.date)
+ list_comments = query_db(stmt)
+ return render_template("news/show.html", news=news_content, comments=list_comments)
elif request.method == 'POST':
- user_id = session['user_id']
- content = request.form['content']
- content_cache = rstify(content)
- db.execute("INSERT INTO comments "
- "('user_id', 'content', 'news_id', 'content_cache') "
- "VALUES (?, ?, ?, ?)",
- (user_id, content, news_id, content_cache))
+ ins = comments.insert().values(user_id=session['user_id'],
+ content=request.form['content'],
+ news_id=news_id,
+ content_cache = rstify(content))
+ db_session.execute(ins)
db.commit()
return redirect(url_for('show_news', news_id=news_id))
@@ -198,7 +197,7 @@ def edit_news(news_id):
@app.route('/user/<int:user_id>/')
@login_required
def view_user(user_id):
- db = get_db()
+
user = query_db(db, 'SELECT * FROM users WHERE id= ?', (user_id,), True)
return render_template("user/show.html", user=user)