How to use kwargs in Flask's url_for method
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I have a certain method methodA
that I need to add optional arguments to in Flask. This is typically trivial with the use of **kwargs
--
@subapp.route('endpoint',methods=['GET','POST'])
def methodA(required_arg,**kwargs):
#stuff
But my problem arises when I try and invoke **kwargs
using url_for()
in the template. In django
, something like this would work just fine --
<a href = "{{url_for('subapp.methodA',required_arg='arg',kwargs={'additional_arg':'arg'})}}">A Link</a>
When I try that in Flask, it simply interprets the kwargs={'additional_arg':'arg'}
as raw text and escapes everything, ignoring the variable in the process. This same exact question was asked earlier. However, omitting the kwargs=
part as the OP did, something like
<a href = "{{url_for('subapp.methodA',required_arg='arg', {'additional_arg':'arg'})}}">A Link</a>
gives me a TemplateSyntaxError
, specifically
TemplateSyntaxError: invalid syntax for function call expression
Additionally, the older question's accepted answer doesn't explain how to properly add the additional arguments in url_for
. Consequently, request.args
fails to capture the arguments in kwargs
. Even if kwargs=
remains in url_for
, request.args
still fails to extract the extra arguments. (To be precise, Flask doesn't even make it to the method -- it escapes kwargs
entirely and yields a 404
error) The older question didn't have anything useful for my problem -- does anyone have any new advice as to what I should do?
python flask
add a comment |
I have a certain method methodA
that I need to add optional arguments to in Flask. This is typically trivial with the use of **kwargs
--
@subapp.route('endpoint',methods=['GET','POST'])
def methodA(required_arg,**kwargs):
#stuff
But my problem arises when I try and invoke **kwargs
using url_for()
in the template. In django
, something like this would work just fine --
<a href = "{{url_for('subapp.methodA',required_arg='arg',kwargs={'additional_arg':'arg'})}}">A Link</a>
When I try that in Flask, it simply interprets the kwargs={'additional_arg':'arg'}
as raw text and escapes everything, ignoring the variable in the process. This same exact question was asked earlier. However, omitting the kwargs=
part as the OP did, something like
<a href = "{{url_for('subapp.methodA',required_arg='arg', {'additional_arg':'arg'})}}">A Link</a>
gives me a TemplateSyntaxError
, specifically
TemplateSyntaxError: invalid syntax for function call expression
Additionally, the older question's accepted answer doesn't explain how to properly add the additional arguments in url_for
. Consequently, request.args
fails to capture the arguments in kwargs
. Even if kwargs=
remains in url_for
, request.args
still fails to extract the extra arguments. (To be precise, Flask doesn't even make it to the method -- it escapes kwargs
entirely and yields a 404
error) The older question didn't have anything useful for my problem -- does anyone have any new advice as to what I should do?
python flask
add a comment |
I have a certain method methodA
that I need to add optional arguments to in Flask. This is typically trivial with the use of **kwargs
--
@subapp.route('endpoint',methods=['GET','POST'])
def methodA(required_arg,**kwargs):
#stuff
But my problem arises when I try and invoke **kwargs
using url_for()
in the template. In django
, something like this would work just fine --
<a href = "{{url_for('subapp.methodA',required_arg='arg',kwargs={'additional_arg':'arg'})}}">A Link</a>
When I try that in Flask, it simply interprets the kwargs={'additional_arg':'arg'}
as raw text and escapes everything, ignoring the variable in the process. This same exact question was asked earlier. However, omitting the kwargs=
part as the OP did, something like
<a href = "{{url_for('subapp.methodA',required_arg='arg', {'additional_arg':'arg'})}}">A Link</a>
gives me a TemplateSyntaxError
, specifically
TemplateSyntaxError: invalid syntax for function call expression
Additionally, the older question's accepted answer doesn't explain how to properly add the additional arguments in url_for
. Consequently, request.args
fails to capture the arguments in kwargs
. Even if kwargs=
remains in url_for
, request.args
still fails to extract the extra arguments. (To be precise, Flask doesn't even make it to the method -- it escapes kwargs
entirely and yields a 404
error) The older question didn't have anything useful for my problem -- does anyone have any new advice as to what I should do?
python flask
I have a certain method methodA
that I need to add optional arguments to in Flask. This is typically trivial with the use of **kwargs
--
@subapp.route('endpoint',methods=['GET','POST'])
def methodA(required_arg,**kwargs):
#stuff
But my problem arises when I try and invoke **kwargs
using url_for()
in the template. In django
, something like this would work just fine --
<a href = "{{url_for('subapp.methodA',required_arg='arg',kwargs={'additional_arg':'arg'})}}">A Link</a>
When I try that in Flask, it simply interprets the kwargs={'additional_arg':'arg'}
as raw text and escapes everything, ignoring the variable in the process. This same exact question was asked earlier. However, omitting the kwargs=
part as the OP did, something like
<a href = "{{url_for('subapp.methodA',required_arg='arg', {'additional_arg':'arg'})}}">A Link</a>
gives me a TemplateSyntaxError
, specifically
TemplateSyntaxError: invalid syntax for function call expression
Additionally, the older question's accepted answer doesn't explain how to properly add the additional arguments in url_for
. Consequently, request.args
fails to capture the arguments in kwargs
. Even if kwargs=
remains in url_for
, request.args
still fails to extract the extra arguments. (To be precise, Flask doesn't even make it to the method -- it escapes kwargs
entirely and yields a 404
error) The older question didn't have anything useful for my problem -- does anyone have any new advice as to what I should do?
python flask
python flask
asked Nov 26 '18 at 20:31
Brian LeeBrian Lee
61
61
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Pass the extra arguments the same way you would in Python, as key='value'
:
<a href = "{{url_for('subapp.methodA', required_arg='arg', additional_arg='arg')}}">
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53488596%2fhow-to-use-kwargs-in-flasks-url-for-method%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Pass the extra arguments the same way you would in Python, as key='value'
:
<a href = "{{url_for('subapp.methodA', required_arg='arg', additional_arg='arg')}}">
add a comment |
Pass the extra arguments the same way you would in Python, as key='value'
:
<a href = "{{url_for('subapp.methodA', required_arg='arg', additional_arg='arg')}}">
add a comment |
Pass the extra arguments the same way you would in Python, as key='value'
:
<a href = "{{url_for('subapp.methodA', required_arg='arg', additional_arg='arg')}}">
Pass the extra arguments the same way you would in Python, as key='value'
:
<a href = "{{url_for('subapp.methodA', required_arg='arg', additional_arg='arg')}}">
answered Nov 26 '18 at 20:36
jwodderjwodder
34.2k45784
34.2k45784
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53488596%2fhow-to-use-kwargs-in-flasks-url-for-method%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown