본문 바로가기
파이썬/파이썬기본문법

파이썬 Django Static Files 추가

by flycoding 2024. 3. 14.
반응형

파이썬 Django Static File : Static folder 생성

웹 응용 프로그램을 구축할 때 이미지 또는 CSS 파일과 같은 일부 정적 파일을 추가해야 할 것이다.

프로젝트에서 template 폴더를 생성한 곳과 동일한 static이라는 이름의 폴더를 생성하는 것으로 시작한다:

폴더 이름은 static 이어야 한다.

my_tennis_club
    manage.py
    my_tennis_club/
    members/
        templates/
        static/

 

static 폴더에 CSS 파일을 추가한다. 이름은 사용자가 선택한 것이다. 이 예에서는 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;
}

 

파이썬 Django Static File : Template 수정

이제 약간의 CSS 스타일을 가진 CSS 파일이 있다. 다음 단계는 이 파일을 HTML 템플릿에 포함시키는 것이다:

HTML 파일을 열고 다음을 추가한다:

{% load static %}

 

<link rel="stylesheet" href="{% static 'myfirst.css' %}">

 

template.html

{% load static %}
<!DOCTYPE html>
<html>
<link rel="stylesheet" href="{% static 'myfirst.css' %}">
<body>

{% for x in fruits %}
  <h1>{{ x }}</h1>
{% endfor %}

<p>In myfirst.css you can see what the stylesheet looks like.</p>

</body>
</html>
views.py

from django.http import HttpResponse
from django.template import loader

def testing(request):
  template = loader.get_template('template.html')
  context = {
    'fruits': ['Apple', 'Banana', 'Cherry'],   
  }
  return HttpResponse(template.render(context, request))     
myfirst.css

body {
  background-color: lightblue;
  font-family: verdana;
}    

위의 코드를 실행하면 아래 그림과 같다.

파이썬 Django static file template  수정 활용 예제

 

변경 내용을 적용하려면 서버를 다시 시작한다:

그리고 결과는 자신의 브라우저인 127.0.0.1:8000/testing/에서 확인하자.

다시 한번 아래 내용을 확인하세요!!!
테스트만 해볼까요? 작업을 배치하지 않고 그냥 놀고 싶다면 settings.py 파일에서 DEBUG = True를 설정하면 위의 예제가 작동한다.

배포할 계획입니까? 작업을 배포할 계획이라면 settings.py 파일에 DEBUG = False를 설정해야 합니다. 위의 예제는 실패할 것입니다. Django에는 정적 파일을 제공하는 내장 솔루션이 없지만 정적 파일을 제공하는 다른 방법이 있기 때문에 다음 장에서 방법을 배우게 된다.

 

my_tennis_club/my_tennis_club/settings.py:

.
.
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
.
.

 

이렇게 하면 예제가 작동하지만 DEBUG = False(디버그 want False)를 선택하는 것이 장고와 함께 작동하는 방법을 배우는 가장 좋은 방법이기 때문이다.

 

파이썬 Django Static File : DEBUG = False를 선택하자

이 튜토리얼의 나머지 부분에서는 개발 중에도 DEBUG = False를 사용하여 실행할 것이다. 왜냐하면 그것이 Django와 함께 작동하는 방법을 배우는 가장 좋은 방법이기 때문이다.

my_tennis_club/my_tennis_club/settings.py:

.
.
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['*']

.
.

 

ALLOWED_HOSTs
DEBUG = False를 사용할 때는 작업을 호스팅할 수 있는 호스트 이름을 지정해야 합니다. 로컬 시스템의 주소를 나타내는 '127.0.0.1' 또는 'localhost'를 선택할 수 있다.

우리는 '*'를 선택하는데, 이것은 이 사이트를 호스트하는 데 허용되는 모든 주소를 의미한다. 이것은 프로젝트를 공용 서버에 배포할 때 실제 도메인 이름으로 변경되어야 한다.

 

맞습니다, 예제는 여전히 작동하지 않는다.

정적 파일을 처리하기 위해 타사 라이브러리를 설치해야 한다.

많은 대안이 있다, 다음 장에서 화이트노이즈라는 파이썬 라이브러리를 사용하는 방법을 보여드리겠다.

 

이번 글에서는 파이썬 Django Static File에 관련된 전반적인 환경 설정에 대해서 살펴보았다.

 

꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.
모두 화이팅입니다.!!!

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

댓글