Половина моїх фляшкових маршрутів вимагає змінної казки, /<variable>/add
або /<variable>/remove
. Як створити посилання на ці місця?
url_for()
бере один аргумент для функції до маршруту, але я не можу додати аргументи?
Половина моїх фляшкових маршрутів вимагає змінної казки, /<variable>/add
або /<variable>/remove
. Як створити посилання на ці місця?
url_for()
бере один аргумент для функції до маршруту, але я не можу додати аргументи?
Відповіді:
Він бере аргументи ключових слів для змінних:
url_for('add', variable=foo)
url_for
, передаватимуться як параметри функції для маршрутів змінних правил у колбі
@app.route("/<a>/<b>")
і def function(a,b): ...
як його функція, то вам слід використовувати url_for
та вказати його ключові аргументи на зразок цього:url_for('function', a='somevalue', b='anothervalue')
url_for
у Flask використовується для створення URL-адреси, щоб запобігти накладним змінам URL-адрес у програмі (у тому числі в шаблонах). Без url_for
зміни кореневої URL-адреси вашої програми, ви повинні змінити її на кожній сторінці, де є посилання.
Синтаксис: url_for('name of the function of the route','parameters (if required)')
Його можна використовувати як:
@app.route('/index')
@app.route('/')
def index():
return 'you are in the index page'
Тепер, якщо у вас є посилання на індексну сторінку: ви можете скористатися цим:
<a href={{ url_for('index') }}>Index</a>
Ви можете зробити багато з цим, наприклад:
@app.route('/questions/<int:question_id>'): #int has been used as a filter that only integer will be passed in the url otherwise it will give a 404 error
def find_question(question_id):
return ('you asked for question{0}'.format(question_id))
Для вищесказаного ми можемо використовувати:
<a href = {{ url_for('find_question' ,question_id=1) }}>Question 1</a>
Так, ви можете просто передати параметри!
{{ url_for('find_question' ,question_id=question.id) }}
а ні{{ url_for('find_question' ,question_id={{question.id}}) }}
Зверніться до документа Flask API дляflask.url_for()
Нижче наведено інші зразки використання прив'язки js або css до вашого шаблону.
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
Шаблони:
Передати ім'я функції та аргумент.
<a href="{{ url_for('get_blog_post',id = blog.id)}}">{{blog.title}}</a>
Перегляд, функція
@app.route('/blog/post/<string:id>',methods=['GET'])
def get_blog_post(id):
return id
def add(variable)
?