Django - Додати статичний файл
Створити статичну папку
Під час створення вебзастосунків ви, ймовірно, захочете додати кілька статичних файлів, наприклад зображень або файлів CSS.
Почніть зі створення папки під назвою static
у вашому проєкті, там же, де ви створили папку templates
(для шаблонів):
Назва папки має бути static
.
my_tennis_club
manage.py
my_tennis_club/
members/
templates/
static/
Додайте файл CSS у папку static
, назву ви самі вибираєте; ми назвемо його myfirst.css
в цьому прикладі:
my_tennis_club
manage.py
my_tennis_club/
members/
templates/
static/
myfirst.css
Відкрийте файл CSS і вставте наступне:
my_tennis_club/members/static/myfirst.css
:
body {
background-color: lightblue;
font-family: verdana;
}
Змінити шаблон
Тепер у вас є файл CSS із деякими стилями CSS. Наступним кроком буде додавання цього файлу до шаблону HTML:
Відкрийте файл HTML і додайте наступне:
{% load static %}
Та:
<link rel="stylesheet" href="{% static 'myfirst.css' %}">
Приклад
my_tennis_club/members/templates/template.html
:
{% load static %}
<!DOCTYPE html>
<html>
<link rel="stylesheet" href="{% static 'myfirst.css' %}">
<body>
{% for x in fruits %}
<h1>{{ x }}</h1>
{% endfor %}
</body>
</html>
Виконати приклад »
Перезапустіть сервер, щоб зміни набули чинності:
py manage.py runserver
І перевірте результат у власному браузері: 127.0.0.1:8000/testing/
.
Не спрацювало?
Просто тестування? Якщо ви просто хочете протестувати, а не розгортати свою роботу, ви можете встановити DEBUG = True
у файл settings.py
, і наведений вище приклад працюватиме.
Плануєте розгортати? Якщо ви плануєте розгортати свою роботу, вам слід встановити DEBUG = False
у файлі settings.py
. Наведений вище приклад буде невдалим, оскільки Django не має вбудованого рішення для обслуговування статичних файлів, але є інші способи обслуговування статичних файлів, ви дізнаєтеся, як це зробити в наступному розділі.
Приклад (у розробці):
my_tennis_club/my_tennis_club/settings.py
:
.
.
# SECURITY WARNING: не запускайте з увімкненим налагодженням у виробництві!
DEBUG = True
.
.
Це змусить приклад працювати, але ми хочемо, щоб ви вибрали DEBUG = False
, оскільки це найкращий спосіб навчитися працювати з Django.
Виберіть Debug = False
До кінця цього підручника ми будемо працювати з DEBUG = False
, навіть у розробці, тому що це найкращий спосіб навчитися працювати з Django.
Приклад:
my_tennis_club/my_tennis_club/settings.py
:
.
.
# SECURITY WARNING: не запускайте з увімкненим налагодженням у виробництві!
DEBUG = False
ALLOWED_HOSTS = ['*']
.
.
ALLOWED_HOSTS
Використовуючи DEBUG = False
, ви маєте вказати, які імена хостів можуть розміщувати вашу роботу. Ви можете вибрати '127.0.0.1'
або 'localhost'
, які обидва представляють адресу вашої локальної машини.
Ми вибираємо '*'
, що означає, що будь-яка адреса може розмістити цей сайт. Це має бути змінено на справжнє доменне ім’я, коли ви розгортаєте свій проєкт на публічному сервері.
Не спрацювало?
Це правильно, приклад все ще не працює.
Щоб обробляти статичні файли, вам потрібно буде встановити сторонню бібліотеку.
Є багато альтернатив; ми покажемо вам, як використовувати бібліотеку Python під назвою WhiteNoise у наступному розділі Встановлення WhiteNoise.