Как использовать kwargs в методе Flask's url_for - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть определенный метод 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). В предыдущем вопросе не было ничего полезного для моей проблемы - есть ли у кого-нибудь новыесовет, что мне делать?

1 Ответ

0 голосов
/ 26 ноября 2018

Передайте дополнительные аргументы так же, как в Python, как key='value':

<a href = "{{url_for('subapp.methodA', required_arg='arg', additional_arg='arg')}}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...