Ошибка сборки python/flask с помощью url_for, лишних нет
Я не могу понять, где дополнительный None
идет от. Я пробовал эти ссылки безрезультатно: Ошибка сборки с переменными и url_for во Flask, как использовать Flask Jinja2 url_for с несколькими параметрами
Кроме того, я не использую BluePrint
,
Вот мой шаблон users.html:
<a href="{{ url_for('user_page', user_id=user.user_id) }}"> {{ user.name }} </a>
Вот два разных user.py
файлы, которые я пробовал:
@app.route('/user')
def user_page():
args = show_user_parser.parse_args()
user_id = args['user_id']
return page_for_user(user_id)
@app.route('/user/<user_id>')
def user_page(user_id):
return page_for_user(user_id)
def page_for_user(user_id):
try:
cur.execute(list_user_detailed_query, (user_id,))
except psycopg2.OperationalError:
return render_template('error.html')
except psycopg2.IntegrityError:
connection.rollback()
return render_template('error.html')
data = cur.fetchone()
return render_template('user.html',
name=data['name'],
email=data['email'],
undergrad=data['undergrad'],
cv=data['cv'])
Вот ошибка сборки:
BuildError: ('user_page', {'user_id': '1'}, None)
1 ответ
Вы назвали оба ваших маршрута "user_page", поэтому я уверен, что первый (который не принимает аргументов) является выигрышным, а когда вы пытаетесь создать URL с аргументами, он терпит неудачу. Переименуйте функции, чтобы они отличались, и это должно исправить.