Почему нет определенного URL для определенного поста? - PullRequest
0 голосов
/ 17 мая 2019

, например, URL поста это / post / username / id / post-about-about но когда я удаляю как письмо от имени пользователя или около или меняю идентификатор на существующий идентификатор, пост остается прежним: (

  • / post / username / id / post-about-about
  • / post / userna / (другой существующий идентификатор) / post-about-abo
  • / post / use / (другой существующий идентификатор) / post-about-abou

-------> все одинаковы

Я использую колбу и MySQL

@app.route("/post/<string:username>/<string:id>/post-about-<string:about>", methods=['GET', 'POST'])
def post(id, about, username):
    form = commentform(request.form)
    cur = mysql.connection.cursor()
    r = cur.execute("SELECT * FROM posts WHERE ID=%s", [id])
    d = cur.execute("SELECT * FROM posts WHERE about=%s", [about])
    k = cur.execute("SELECT * FROM posts WHERE username=%s", [username])
    post = cur.fetchone()

    if r==0 and k==0 and d==0:
        flash("no post found with that id")
        return redirect(url_for('index'))
    if 'logged_in' in session :
        if (request.method == 'POST' and form.validate()):
            comment = form.comment.data
            cur = mysql.connection.cursor()
            cur.execute("INSERT INTO comments (text, username, post_id) VALUES (%s, %s, %s)", (comment, session['username'], id))
            mysql.connection.commit()
            cur.close()
            flash("Comment successful", 'success')
            return redirect(url_for('index'))
    cur.execute("SELECT * FROM comments WHERE post_id=%s", [id])
    commentaria = cur.fetchall()
    cur.close()

    return render_template('post.html' , post = post, form=form, commentaria=commentaria)

1 Ответ

0 голосов
/ 17 мая 2019

Судя по структуре вашего URL, я думаю, вы захотите использовать такой запрос:

k = cur.execute("SELECT * FROM posts WHERE username=%s AND ID = %s AND about = %s", (username, id, about))
post = cur.fetchone()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...