diff options
Diffstat (limited to 'famille.py')
| -rw-r--r-- | famille.py | 33 |
1 files changed, 16 insertions, 17 deletions
@@ -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) |
