Наличие отдельных переменных для options1
, options2
и т. Д. c, вероятно, затрудняет это по нескольким причинам:
- Вам потребуется вручную обновить жесткое кодирование шаблона для добавления дополнительных параметров.
- Часть URL каждого параметра может отличаться от текста ссылки.
Вы можете sh определить свои параметры в словарь:
sections = {'first-option': 'I am the first option',
'second-option': 'Click me for fun and profit',
'third-option': 'All flights have been cancelled',
}
Теперь на странице, которая генерирует вашу панель ссылок, если вы передадите ее через:
return render_template('some_page.html', SECTIONS=sections)
Затем вы можете сделать что-то вроде:
{% for key, value in SECTIONS.items() %}
<a href="{{url_for('selected', section=key)}}">{{value}}</a>
{% endfor %}
Это автоматически сгенерирует правильные URL-адреса, совместимые со следующей функцией просмотра:
@app.route('/selected/<section>')
def selected(section):
# Assuming the first URL:
print (section) # 'first-option'
print (sections[section]) # 'I am the first option'
return render_template("selected.html", selected_option=section)
Вы также можете sh взглянуть на эту суть , которая занимает концепция немного дальше.
Здесь также используется контекстный процессор для вставки этой переменной SECTIONS
во все страницы, вместо передачи ее отдельным функциям render_template
.