У меня есть определенный метод methodA
, к которому мне нужно добавить необязательные аргументы во Flask.Это обычно тривиально с использованием **kwargs
-
@subapp.route('endpoint',methods=['GET','POST'])
def methodA(required_arg,**kwargs):
#stuff
Но моя проблема возникает, когда я пытаюсь вызвать **kwargs
, используя url_for()
в шаблоне.В django
что-то вроде этого будет работать нормально -
<a href = "{{url_for('subapp.methodA',required_arg='arg',kwargs={'additional_arg':'arg'})}}">A Link</a>
Когда я пытаюсь сделать это во Flask, он просто интерпретирует kwargs={'additional_arg':'arg'}
как необработанный текст и экранирует все, игнорируя переменную в процессе.,Точно такой же вопрос был задан ранее .Однако, опуская часть kwargs=
, как это сделал OP, что-то вроде
<a href = "{{url_for('subapp.methodA',required_arg='arg', {'additional_arg':'arg'})}}">A Link</a>
дает мне TemplateSyntaxError
, в частности
TemplateSyntaxError: invalid syntax for function call expression
Кроме того, принятый ответ на старый вопрос не даетt объяснить, как правильно добавить дополнительные аргументы в url_for
.Следовательно, request.args
не может захватить аргументы в kwargs
.Даже если kwargs=
остается в url_for
, request.args
все равно не удается извлечь дополнительные аргументы.(Точнее, Flask даже не подходит к этому методу - он полностью избегает kwargs
и выдает ошибку 404
). В предыдущем вопросе не было ничего полезного для моей проблемы - есть ли у кого-нибудь новыесовет, что мне делать?