Reputation:
This works, but Id like to pass the parameter variable values to the section inside return render_template() so I can reuse test(), how can I do that?
""" Test.html """
@app.route('/test')
def test():
"""Renders the careers page."""
return render_template(
'content/loader.html',
title='Test',
year=datetime.now().year,
message='Your Test page.',
main_nav_active_ = '',
layout_template = '/layouts/default.html',
content_template = 'clarity.html'
)
I would like to be able to use the function like this based on routes
""" Test.html """
def test(title,year,message, main_nav_active_, layout_template, content_template)
"""Renders the careers page."""
return render_template(
'content/loader.html',
title=title,
year=year,
message=message,
main_nav_active_ = main_nav_active_,
layout_template = layout_template,
content_template = content_template
)
@app.route('/test2')
test(title='test2',year=datetime.now().year,message='Your Test page.', main_nav_active_='', layout_template='/layouts/default.html', content_template='clarity.html')
@app.route('/test3')
test(title='test3',year=datetime.now().year,message='Your Test page3.', main_nav_active_='', layout_template='/layouts/default.html', content_template='foo.html')
Upvotes: 0
Views: 2925
Reputation: 26
def test(**kwargs)
"""Renders the careers page."""
return render_template(
'content/loader.html',
**kwargs
)
@app.route('/test2')
def test2():
return test(title='test2',year=datetime.now().year,message='Your Test page.', main_nav_active_='', layout_template='/layouts/default.html', content_template='clarity.html')
@app.route('/test3')
def test3():
return test(title='test3',year=datetime.now().year,message='Your Test page3.', main_nav_active_='', layout_template='/layouts/default.html', content_template='foo.html')
Upvotes: 0
Reputation: 160063
Simply extract test
:
def test(
template='content/loader.html',
title='Test',
year=None,
message='Your Test page.',
main_nav_active_='',
layout_template='/layouts/default.html',
content_template='clarity.html'
):
"""Renders a particular page type."""
return render_template(
template,
title=title,
year=year if year is not None else datetime.now().year,
message=message,
main_nav_active_=main_nav_active_,
layout_template=layout_template,
content_template=content_template
)
Then you can register it with a URL using app.add_url_rule
or use it as part of your other route(s) definitions:
app.add_url_rule("/test", "test", test)
# Or
@app.route("/another/<route>")
def alternatively(route_name):
return test(title=route_name)
Upvotes: 1