Использование кнопки для запуска SQL-запроса с флягой - PullRequest
0 голосов
/ 11 июля 2019

На странице пользователя у меня есть кнопка «Добавить», которая должна отправить запрос на добавление другому пользователю.В коде колбы для кнопки используется таблица friend_request, для которой требуется идентификатор пользователя отправителя запроса, который хранится в сеансе [user_ID], и получатель, идентификатор которого хранится в data.uid (в HTML), который происходит из «data» на странице пользователя.() маршрут, код колбы для страницы пользователя:

@app.route('/user/<user_id>')
def userpage(user_id):
    user_id = int(user_id)
    c = sq.connection.cursor()

    try:
        result = c.execute('SELECT * FROM users WHERE uid = %s ',(user_id))
    except:
        print('Error','info')
    data = c.fetchall()

    return render_template('user/profpage.html', data=data[0]) 

HTML-код страницы пользователя:

<h1>Name here</h1>
<p> Description, of a really cool person</p>

<p> {{ data.fname }}</p>
<p> {{ data.lname }}</p>
<p> {{ data.email }}</p>
{% if session['user_ID'] != data.uid %}
    <a href="/user/add/{{ data.uid }}" class="btn btn-primary" name="Add">Add</a>
{% endif %}

код колбы для кнопки «Добавить»:

@app.route('/user/add/<user_id>')
def useradd(user_id):
    user_id = int(user_id)
    c = sq.connection.cursor()
    try:
        result = c.execute('INSERT INTO friend_requests(req_by,req_to) VALUES (%s,%s) ',(session['user_ID'],user_id))
        sq.connection.commit()
    except:
        print('Error','info')

    return redirect(url_for('userpage'))

при попыткереализовав это, он вводит информацию в таблицу datebase, однако я получаю следующую ошибку "werkzeug.routing.BuildError: Не удалось создать URL для конечной точки 'userpage'. Вы забыли указать значения ['user_id']?"

1 Ответ

1 голос
/ 11 июля 2019

код

return redirect(url_for('userpage'))

попробуйте использовать route('/user/') для создания URL, но у вас есть только route('/user/<user_id>'), который ожидает user_id в качестве параметра - поэтому вы должны добавить это user_id в url_for

url_for('userpage', user_id=user_id)

или

url_for('userpage', user_id=session['user_ID'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...