File statis untuk produksi
Termasuk bagian API JSON dalam perjalanan Django di Coddy. Pelajaran 19 dari 19.
Di lingkungan produksi, program seperti Gunicorn menjalankan Django, bukan runserver, dan tidak menyajikan file statis seperti app.js. File tersebut disajikan dari satu folder oleh server web atau package seperti WhiteNoise.
Folder itu adalah STATIC_ROOT, sebuah path absolut. python manage.py collectstatic menyalin semua file static/ dari setiap aplikasi ke folder tersebut, dan kamu menjalankannya setiap kali deploy. Tanpa STATIC_ROOT, proses akan berhenti dengan ImproperlyConfigured.
Path dalam pengaturan dibuat dari BASE_DIR, folder yang berisi manage.py, dengan operator / dari pathlib. Folder untuk file yang diunggah pengunjung:
MEDIA_ROOT = BASE_DIR / "uploads"Sebelum ditayangkan, python manage.py check --deploy mencantumkan pengaturan yang belum siap.
Tantangan
MudahDi mysite/settings.py, di bawah STATIC_URL, atur STATIC_ROOT ke folder staticfiles yang berada di samping manage.py, sebagai path absolut.
Tekan Jalankan, lalu di tab Shell: from django.core.management import call_command; call_command("collectstatic", interactive=False) akan mencetak jumlah file yang disalin.
Coba sendiri
import os
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY", "django-insecure-change-me")
DEBUG = os.environ.get("DJANGO_DEBUG", "False") == "True"
ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS", "localhost,127.0.0.1").split(",")
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"tasks",
]
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
ROOT_URLCONF = "mysite.urls"
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
},
},
]
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": BASE_DIR / "db.sqlite3",
}
}
LANGUAGE_CODE = "en-us"
TIME_ZONE = "UTC"
USE_I18N = True
USE_TZ = True
STATIC_URL = "static/"
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di API JSON
2Membaca Permintaan
Memfilter dengan QueryMembuat dengan POST5Proyek: Mengurutkan Pekerjaan
Proyek: PrioritasProyek: Menghapus Tugas yang SelesaiLatihan sendiri: Playground Django