Hình thức Django với bootstrap

Hình thức Django với bootstrap

Adi Ramadhan

Làm theo

21 Tháng Bảy, 2020

·

3 phút đọc

Django CRUD với Biểu mẫu và Mẫu Bootstrap

Chế độ xem dựa trên chức năng đơn giản Django CRUD với mẫu Django Forms và Bootstrap

Hình thức Django với bootstrap
Hình thức Django không có kiểu dáng

Sử dụng Bootstrap và django-crispy-forms, các mẫu được hiển thị có thể dễ dàng được cải thiện để trông đẹp hơn nhiều mà không cần phải điều chỉnh kiểu dáng theo cách thủ công. Ví dụ

Hình thức Django với bootstrap
Biểu mẫu Django được tạo kiểu bằng Bootstrap

Ví dụ: tôi mở rộng Ứng dụng Django “Xin chào thế giới” của mình (được mô tả trong bài đăng trước) bằng cách thêm một biểu mẫu đơn giản và hiển thị nó bằng Bootstrap và django-crispy-forms. Tất cả những gì nó làm là hỏi tên người dùng và ngày tháng, sau đó hiển thị

INSTALLED_APPS = (
    ...
    'crispy_forms',
)
0 và bộ đếm tần suất nút được nhấp. Tuy nhiên, ví dụ nhỏ minh họa cách sử dụng Bootstrap và django-crispy-forms. Đặc biệt với nhiều biểu mẫu hoặc biểu mẫu lớn, django-crispy-forms trở nên hữu ích để giảm bớt các bản soạn sẵn lặp đi lặp lại

Cài đặt django-crispy-forms

Cài đặt phần phụ thuộc và thêm nó vào

INSTALLED_APPS = (
    ...
    'crispy_forms',
)
4

pip install django-crispy-forms

Thêm

INSTALLED_APPS = (
    ...
    'crispy_forms',
)
5 bên trong
INSTALLED_APPS = (
    ...
    'crispy_forms',
)
6

INSTALLED_APPS = (
    ...
    'crispy_forms',
)

Kích hoạt gói mẫu Bootstrap 4, thêm dòng sau vào

INSTALLED_APPS = (
    ...
    'crispy_forms',
)
6

CRISPY_TEMPLATE_PACK = 'bootstrap4'

Cho đến nay, không có gói mẫu

INSTALLED_APPS = (
    ...
    'crispy_forms',
)
8 chính thức, nhưng gói mẫu
INSTALLED_APPS = (
    ...
    'crispy_forms',
)
9 dường như cũng hoạt động với Bootstrap 5 mà tôi sử dụng sau này

Xây dựng Biểu mẫu
CRISPY_TEMPLATE_PACK = 'bootstrap4'
0

Tạo biểu mẫu Django

Ví dụ: tôi tạo một biểu mẫu mới cho phép người dùng chỉ định tên của họ và ngày tùy ý sẽ được hiển thị trong ứng dụng “Xin chào thế giới”. Để làm được điều đó, tôi tạo

CRISPY_TEMPLATE_PACK = 'bootstrap4'
1 với nội dung sau

import datetime

from django import forms


class HelloWorldForm(forms.Form):
    """Form asking for the user's name and an arbitrary date, both used inside the displayed 'Hello World' text."""
    username = forms.CharField(label='Your Name', max_length=100)
    date = forms.DateField(label='An arbitrary date', initial=datetime.date.today,
                           widget=forms.widgets.DateInput(attrs={'type': 'date'}),
                           help_text='The entered name and date will be displayed temporarily but publicly in the '
                                     'generated "Hello World" message. It will not be stored.')

Hầu hết các đối số trường là tùy chọn nhưng cung cấp thông tin bổ sung cho django-crispy-forms để hiển thị trong biểu mẫu Bootstrap

Sau đó, tôi sử dụng biểu mẫu này bên trong

CRISPY_TEMPLATE_PACK = 'bootstrap4'
3 cho chế độ xem chỉ mục của mình (chế độ xem duy nhất của ứng dụng “Xin chào thế giới” cho đến nay)

def index(request):
    # retriever counter model instance from DB or create it if it doesn't exist yet
    counter, created = Counter.objects.get_or_create(name='hello-world-button')

    # increment counter when a POST request arrives (from the button click)
    # see previous blog post: https://stefanbschneider.github.io/blog/django-db
    if request.method == 'POST':
        counter.value += 1
        counter.save()

        # and get the values filled in form
        form = HelloWorldForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            date = form.cleaned_data['date']

    else:
        form = HelloWorldForm()
        username = 'Nobody'
        date = datetime.date.today()

    context = {
        'clicks': counter.value,
        'form': form,
        'username': username,
        'date': date,
    }
    return render(request, 'helloworld/index.html', context)

Cuối cùng, hiển thị biểu mẫu trong mẫu

CRISPY_TEMPLATE_PACK = 'bootstrap4'
4

 class="alert alert-success" role="alert">
    {{ username }} says: "Hello World!" on {{ date }}. (Button clicked {{ clicks }}x in total.)
action="{% url 'helloworld:index' %}" method="post"> {% csrf_token %} {{ form }} type="submit" class="btn btn-primary">Greet the world!

Bây giờ, khi chạy máy chủ phát triển, ứng dụng sẽ hiển thị biểu mẫu mới

Hình thức Django với bootstrap

Thông báo “Xin chào thế giới” sẽ hiển thị tên người dùng và ngày đã nhập cũng như tổng số lần nhấp. Tuy nhiên hình thức chưa sử dụng Bootstrap và còn khá xấu

Làm cho hình thức đẹp

Để làm cho biểu mẫu trông đẹp hơn, trước tiên tôi bao gồm Bootstrap. Để sử dụng Bootstrap, chỉ cần thêm CSS và JavaScript của Bootstrap vào phần đầu của mẫu chính/cơ sở của ứng dụng Django. Trang web Bootstrap có hướng dẫn mới nhất

Đối với ứng dụng Django “Xin chào thế giới” của tôi, tôi chỉ cần thêm các dòng sau vào bên trong

CRISPY_TEMPLATE_PACK = 'bootstrap4'
5


    </span>Hello World<span>
    
    {#  Bootstrap  #}
     href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
    




Thao tác này tải Bootstrap 5 mới từ mạng JSDeliver CDN để có thể sử dụng nó trong các mẫu ứng dụng Django. Bây giờ, cảnh báo và nút đã trông đẹp hơn, nhưng các trường biểu mẫu vẫn trông xấu

Để cũng hiển thị các trường biểu mẫu bằng Bootstrap, tôi sử dụng django-crispy-forms. Tất cả những gì cần làm là tải

CRISPY_TEMPLATE_PACK = 'bootstrap4'
0 và chuyển biểu mẫu tới
CRISPY_TEMPLATE_PACK = 'bootstrap4'
0 bên trong
CRISPY_TEMPLATE_PACK = 'bootstrap4'
4

{% load crispy_forms_tags %}

 class="alert alert-success" role="alert">
    {{ username }} says: "Hello World!" on {{ date }}. (Button clicked {{ clicks }}x in total.)

 action="{% url 'helloworld:index' %}" method="post">
{% csrf_token %}
{{ form | crispy }}
 type="submit" class="btn btn-primary">Greet the world!

Bây giờ, ứng dụng Django sẽ được hiển thị bằng Bootstrap và trông đẹp hơn nhiều

Hình thức Django với bootstrap

Điều thú vị là

CRISPY_TEMPLATE_PACK = 'bootstrap4'
0 sẽ xử lý tất cả chi phí tạo kiểu cho từng trường biểu mẫu bằng bootstrap, điều này đặc biệt hữu ích khi có nhiều biểu mẫu lớn bên trong ứng dụng Django

Làm cách nào để sử dụng Bootstrap với các biểu mẫu Django?

Hiển thị biểu mẫu Django bằng Bootstrap yêu cầu bạn phải cài đặt bootstrap4 theo pip hoặc thêm CDN Bootstrap và JavaScript vào tệp . Bắt đầu bằng cách thêm Bootstrap CSS và JavaScript vào mẫu HTML của bạn. Bằng cách này, bạn có thể sử dụng CSS Bootstrap mà không cần phải thêm CSS biểu mẫu Django của riêng bạn một cách không cần thiết.

Tôi có thể sử dụng Bootstrap với Django không?

Django với Bootstrap. Bootstrap là một khung được sử dụng để tạo giao diện người dùng trong các ứng dụng web. Nó cung cấp css, js và các công cụ khác giúp tạo giao diện cần thiết. Trong Django, chúng ta có thể sử dụng bootstrap để tạo các ứng dụng thân thiện với người dùng hơn .

Tôi có thể sử dụng Bootstrap 5 với Django không?

Có hai cách để sử dụng Bootstrap 5 trong dự án Django. Bạn có thể cài đặt nó trong ứng dụng của mình hoặc tham khảo các tệp bằng CDN của Bootstrap . Dự án này sẽ sử dụng phương pháp cũ. Trước khi cài đặt Bootstrap, hãy tạo một dự án Django và một ứng dụng có tên là thư viện.

Làm cách nào để sử dụng các hình thức giòn Bootstrap ở Django?

Hướng dẫn biểu mẫu Django giòn. Tích hợp Biểu mẫu Bootstrap với Django rất dễ dàng và đơn giản. .
Cách kết xuất dữ liệu động trong mẫu Django
Cách tích hợp mẫu Bootstrap 4 trong Django
Cách viết Thẻ và bộ lọc mẫu tùy chỉnh Django