Câu trả lời:
Nó nhận các đối số từ khóa cho các biến:
url_for('add', variable=foo)
url_for
sẽ chuyển dưới dạng tham số hàm cho các tuyến quy tắc biến đổi trong Flask
@app.route("/<a>/<b>")
và def function(a,b): ...
là chức năng của nó, thì bạn nên sử dụng url_for
và chỉ định các đối số từ khóa của nó như thế này:url_for('function', a='somevalue', b='anothervalue')
url_for
trong Flask được sử dụng để tạo URL để ngăn chặn chi phí phải thay đổi URL trong toàn bộ ứng dụng (bao gồm trong các mẫu). Nếu không url_for
, nếu có một thay đổi trong URL gốc của ứng dụng thì bạn phải thay đổi nó trong mỗi trang có liên kết.
Cú pháp: url_for('name of the function of the route','parameters (if required)')
Nó có thể được sử dụng như:
@app.route('/index')
@app.route('/')
def index():
return 'you are in the index page'
Bây giờ nếu bạn có một liên kết trang chỉ mục: bạn có thể sử dụng:
<a href={{ url_for('index') }}>Index</a>
Bạn có thể làm rất nhiều thứ với nó, ví dụ:
@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))
Đối với ở trên, chúng ta có thể sử dụng:
<a href = {{ url_for('find_question' ,question_id=1) }}>Question 1</a>
Như thế này, bạn có thể chỉ cần vượt qua các tham số!
{{ url_for('find_question' ,question_id=question.id) }}
và không{{ url_for('find_question' ,question_id={{question.id}}) }}
Tham khảo tài liệu API Flask để biếtflask.url_for()
Các đoạn mẫu sử dụng khác để liên kết js hoặc css với mẫu của bạn ở bên dưới.
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
Mẫu:
Truyền tên hàm và đối số.
<a href="{{ url_for('get_blog_post',id = blog.id)}}">{{blog.title}}</a>
Xem, chức năng
@app.route('/blog/post/<string:id>',methods=['GET'])
def get_blog_post(id):
return id
def add(variable)
gì?