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_forsẽ 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_forvà chỉ định các đối số từ khóa của nó như thế này:url_for('function', a='somevalue', b='anothervalue')
url_fortrong 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ì?