Làm cách nào để lặp lại trong HTML Django?

Vòng lặp for được sử dụng để lặp qua bất kỳ đối tượng có thể lặp nào, truy cập từng mục một và cung cấp mục đó bên trong thân vòng lặp for

Ví dụ: nếu bạn muốn tạo danh sách thả xuống các quốc gia trong mẫu Django, bạn có thể sử dụng mã bên dưới

{% for country in country_list %}
    
{% endfor %}

Xem demo tại đây. https. //www. djangotemplatefiddle. com/f/ekDF3p/

{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}
3 là một thẻ có sẵn trong mẫu Django và nó cần được đóng lại bằng thẻ
{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}
4

Lặp lại từ điển

Để lặp qua từ điển tên người và tuổi của họ, giống như bạn làm trong Python, hãy sử dụng mã bên dưới

{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}

Xem demo tại đây. https. //www. djangotemplatefiddle. com/f/8G2HtW/

Các đối tượng như dữ liệu và country_list sẽ được chuyển đến hàm kết xuất trong khi kết xuất mẫu

return render(request, 'appname/template_name.html', {"data":data, "country_list":country_list})

Kiểm tra xem iterable được sử dụng trong vòng lặp for có trống không

Giả sử bạn muốn hiển thị tin nhắn mới cho người dùng đã đăng nhập. Bạn đã tìm nạp tất cả các tin nhắn mới từ cơ sở dữ liệu và lưu trữ chúng trong một danh sách và được chuyển đến chức năng kết xuất cùng với mẫu.  

Bây giờ bạn có thể kiểm tra xem danh sách tin nhắn có trống hay không và sau đó hiển thị tin nhắn tương ứng. Thí dụ

{% if messages %}
    {% for message in messages %}
        {{ message }}
{% endfor %} {% else %}

No new message for you

{% endif %}

Hoặc bạn có thể sử dụng thẻ

{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}
5 cùng với thẻ
{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}
6 như bên dưới

________số 8

Đột nhập Django cho vòng lặp

Đó có thể là một tin xấu cho bạn. Không có câu lệnh ngắt nào trong mẫu Django Đối với vòng lặp

Tùy thuộc vào yêu cầu của bạn, bạn có thể làm một trong những điều sau đây

Tùy chọn 1 - Lặp lại toàn bộ danh sách nhưng không thực hiện bất kỳ hành động nào nếu điều kiện không khớp

Ví dụ: bạn đang in số từ danh sách và bạn cần thoát khỏi danh sách ngay khi gặp số 99. Thông thường, điều này sẽ được thực hiện như dưới đây trong Python

for number in numbers:
    if 99 == number:
        break
    print(number)

Nhưng không có câu lệnh ngắt nào trong mẫu Django Đối với vòng lặp. Bạn có thể đạt được chức năng tương tự (gần như) như bên dưới

{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}
0


Tùy chọn 2 - Bạn có thể tạo thẻ mẫu tùy chỉnh của riêng mình.  

Lặp lại danh sách đảo ngược

Bạn có thể lặp lại danh sách theo thứ tự ngược lại bằng mã bên dưới

{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}
1

Truy cập chỉ mục vòng lặp bên trong vòng lặp

Nếu bạn muốn in dãy số trước mặt hàng đang in, bạn có thể sử dụng biến

{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}
7

{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}
3____14

Xem demo tại đây. https. //www. djangotemplatefiddle. com/f/BhWj5E/

Tương tự, bạn có thể sử dụng các biến dưới đây

vòng lặp for. bộ đếm  - chỉ mục hiện tại khi bắt đầu bằng 0
vòng lặp for. bộ đếm vòng quay - chỉ mục từ cuối cùng của vòng lặp, bắt đầu bằng 1
forloop. revcount0 - chỉ mục từ cuối cùng của vòng lặp, bắt đầu bằng 0
forloop. vòng lặp cha - chỉ mục vòng lặp cha trong vòng lặp For lồng nhau
forloop. đầu tiên - trả về true nếu mục hiện tại là mục đầu tiên của danh sách
forloop. cuối cùng - trả về true nếu mục hiện tại là mục cuối cùng của danh sách

Phạm vi trong mẫu Django

Đôi khi bạn chỉ cần chạy một vòng lặp N số lần. Trong những trường hợp như vậy, mục ở chỉ mục hiện tại không thành vấn đề. Trong python, bạn sẽ sử dụng chức năng phạm vi. Nhưng một lần nữa, không có thẻ phạm vi hoặc chức năng nào trong mẫu Django. Bạn có thể sử dụng một trong các cách tiếp cận dưới đây

Tùy chọn 1 - Chuyển danh sách để kết xuất chức năng cùng với mẫu

{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}
0

Và trong mẫu

{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}
1

Tùy chọn 2 - Bạn có thể sử dụng mã bên dưới để mô phỏng chức năng phạm vi

{% for name, age in data.items %}
    Name: {{name}}, Age: {{age}} 
{% endfor %}
2

lchỉ căn trái các giá trị trong trường có chiều rộng nhất định (trong trường hợp này là 100). Vì vậy, "x". tôi vừa phải. "10" sẽ là "x         ". Vì vậy, về cơ bản, bạn có một chuỗi có độ dài 10 với 9 dấu cách trong đó và 'x' là ký tự đầu tiên. Bây giờ bạn đang lặp lại chuỗi này một ký tự tại một thời điểm

Làm cách nào để sử dụng phạm vi trong HTML Django?

từ django nhập mẫu đăng ký = mẫu. Thư viện() @register. bộ lọc () phạm vi xác định (tối thiểu = 5). phạm vi trở lại (tối thiểu)
{% cho giá trị trong 5. phạm vi. 10 %} {{ value }} {% endfor %}
{% với ''. trung tâm. 10 dưới dạng phạm vi %} {% cho _ trong phạm vi %} {{ 'Xin chào' }} {% endfor %} {% endwith %}

{% khối %} trong Django là gì?

Trong các mẫu chính, thẻ khối là phần giữ chỗ sẽ được thay thế bằng một khối trong mẫu con có cùng tên . Trong các mẫu con, thẻ khối là nội dung sẽ thay thế trình giữ chỗ trong mẫu chính có cùng tên.

{{this}} có nghĩa là gì trong Django?

{{ foo }} - đây là trình giữ chỗ trong mẫu, dành cho biến foo được chuyển đến mẫu từ chế độ xem . {% %} - khi văn bản được bao quanh bởi các dấu phân cách này, điều đó có nghĩa là có một chức năng hoặc mã đặc biệt nào đó đang chạy và kết quả của việc đó sẽ được đặt ở đây.