Django – File tĩnh

4.1/5 - (33 votes)

Trong phần này chúng ta sẽ tìm hiểu cách sử dụng các file tĩnh.

Ngoài nội dung HTML được sinh ra bởi server thì một ứng dụng web còn cần đến các file bổ sung khác, chẳng hạn như các file hình ảnh, Javascript, CSS… Trong Django thì các file này được gọi là file tĩnh.

Module django.contrib.staticfiles được liệt kê trong biến INSTALLED_APP (trong file mysite/settings.py) sẽ quản lý các file tĩnh này.

Tùy biến CSS

Đầu tiên chúng ta tạo một thư mục có tên là static trong thư mục polls. Django sẽ tự động tìm các file tĩnh trong thư mục này giống như tìm các file template trong thư mục polls/templates vậy.

Trong thư mục static này chúng ta lại tạo một thư mục khác với tên là polls và tạo một file CSS có tên là style.css.

li a {
    color: green
}

Trong file này chúng ta chỉ đơn giản là thiết lập màu chữ cho các thẻ li và a.

Tiếp theo chúng ta cần sửa lại file index.html một tí.

{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" /> 

Dòng {% load staticfiles %} sẽ tự động gán đường dẫn đến thư mục mysite/polls/static/ vào một biến có tên static do Django tự đặt, từ đó bạn chỉ cần lấy biến static là có thể lấy được đường dẫn tuyệt đối đến thư mục này.

<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" /> 

Sau đó chúng ta chỉ cần lấy biến static trong cặp thẻ {% %} ra và gắn thêm đường dẫn đến các file css, js… của bạn.

5 3 votes
Article Rating
Subscribe
Thông báo cho tôi qua email khi
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Inline Feedbacks
View all comments
SOn
SOn
2 năm trước

cập nhật thêm file setting.py tại mục

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
            'libraries':{'staticfiles':'django.templatetags.static'}
        },
    },
]

–> Để khai báo staticfiles với thư viện django.