2014-04-17 15 views
10

Vì vậy, chúng ta hãy nói rằng tôi có một mẫu với một vài liên kết, các liên kết sẽ được như thế này:chuyển hướng với url_for đến một con đường với params truy vấn trong bình

<a class='btn btn-primary' href='/?chart=new_chart&chart=other_chart'>View Summary</a> 

Tuy nhiên, hầu hết các lần khi tôi có các liên kết được thực hiện hoặc các tài nguyên được bao gồm, tôi đã sử dụng cú pháp sau:

<script src="{{ url_for('static', filename='some_silly_js') }}"></script> 

có thể thực hiện url_for với tham số truy vấn không? Một cái gì đó như:

<a href="{{ url_for('stats', query_params={chart: [new_chart, other_chart]}) }}>View More</a> 

Trả lời

16

Bất kỳ thông số từ khóa phụ truyền cho url_for() mà không được hỗ trợ bởi các tuyến đường sẽ được tự động thêm vào như là tham số truy vấn.

Đối với các giá trị lặp đi lặp lại, vượt qua trong một danh sách:

<a href="{{ url_for('stats', chart=[new_chart, other_chart]) }}>View More</a> 

Flask sẽ sau đó:

  1. tìm ra stats endpoint
  2. điền vào bất kỳ thông số tuyến đường cần
  3. chuyển đổi bất kỳ từ khoá còn lại tham số cho chuỗi truy vấn

Demo, với 'stats' là tên thiết bị đầu cuối cho /:

>>> url_for('stats', chart=['foo', 'bar']) 
'/?chart=foo&chart=bar' 
+0

câu trả lời xuất sắc nhất, cảm ơn bạn thưa ông tốt – corvid

Các vấn đề liên quan