[파이썬][Django] 정적 파일 서빙 함수 사용 방법과 예제
Django에서 정적 파일을 서빙하는 함수를 사용하는 방법과 예제를 제공하겠습니다. 정적 파일은 CSS, JavaScript, 이미지 등과 같이 프로젝트 내에서 변경되지 않는 파일입니다.
-
정적 파일 디렉토리 설정
먼저,
settings.py
파일에서 정적 파일을 어디에 저장할 것인지 설정해야 합니다.STATIC_URL
및STATICFILES_DIRS
설정을 사용하여 정적 파일의 URL 및 디렉토리를 정의합니다.
# settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / "static"]
위의 설정은 `STATIC_URL`로 시작하는 URL 경로를 사용하여 `STATICFILES_DIRS`에 정의된 디렉토리에서 정적 파일을 찾을 것임을 의미합니다.
-
정적 파일 서빙 미들웨어 활성화
Django에서 정적 파일을 서빙하려면
STATICFILES_FINDERS
와django.contrib.staticfiles
앱을INSTALLED_APPS
에 추가해야 합니다.
# settings.py
INSTALLED_APPS = [
# ...
'django.contrib.staticfiles',
# ...
]
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]
-
URL 패턴 설정
urls.py
파일에서 정적 파일을 서빙하는 URL 패턴을 설정해야 합니다. 이렇게 하면 개발 서버에서도 정적 파일에 접근할 수 있습니다.
# urls.py
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
# 다른 URL 패턴들
]
# 개발 서버에서 정적 파일 서빙
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS[0])
위의 코드에서 `static` 함수는 개발 서버에서만 사용하도록 `DEBUG` 설정을 확인하며 정적 파일을 서빙합니다.
-
정적 파일 사용 예제
이제 정적 파일을 사용할 수 있습니다. 예를 들어, HTML 템플릿에서 CSS 파일을 불러오는 예제는 다음과 같습니다:
<pre>
<code>
<!-- myapp/templates/my_template.html -->
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="{% static 'css/styles.css' %}">
</head>
<body>
<!-- 내용 -->
</body>
</html>
위의 코드에서 `{% static 'css/styles.css' %}`는 정적 CSS 파일을 불러오는 데 사용됩니다.
</code>
</pre>
이렇게 하면 Django 애플리케이션에서 정적 파일을 서빙하고 사용하는 방법을 알게되었습니다. 이를 통해 웹 애플리케이션에서 CSS, JavaScript, 이미지 등의 정적 파일을 관리하고 제공할 수 있습니다.