Django 작업 디렉터리 구조에 대한 모범 사례
Django는 풀 스택 웹 애플리케이션을 만드는 데 사용할 수있는 환상적인 Python 기반의 오픈 소스 웹 개발 프레임 워크입니다. 프레임 워크이기 때문에 처음에는 프로젝트 내에서 많은 파일을 기대할 수 있습니다. 처음에는 초보자에게 너무 압도적 일 수 있지만 걱정할 것은 없습니다. 시간이 지나면 모두 단순 해 보일 것입니다.
웹 애플리케이션에는 개발과 생산이라는 두 가지 측면이 있습니다. 개발 측은 프로덕션 측과 비교하여 다른 설정을 가지고 있습니다. Django 응용 프로그램에는static
,media
,templates
등과 같은 많은 폴더가 있습니다. Django는 한동안 사용되어 왔기 때문에 더 성공적인 프로젝트를 위해 Django 작업 디렉토리 구조에 대한 모범 사례를 알아야합니다. 지역. 이 기사에서 이러한 방법에 대해 이야기 할 것이므로 계속 읽으십시오!
장고 디렉토리 구조
Django 프로젝트의 디렉토리 구조는 다음과 같습니다.
Project Folder/
.gitignore
LICENSE.rst or LICENSE.md
Documentation/
README.rst or README.md
environment
requirements.txt
MyProject/
manage.py
media/
MyProject/
__init__.py
settings/
__init__.py
base.py
development.py
production.py
.env
urls.py
wsgi.py
AppOne/
static/
AppOne/
templates/
AppOne/
urls.py
views.py
models.py
AppTwo/
static/
AppTwo/
templates/
AppTwo/
urls.py
views.py
models.py
AppThree/
static/
AppThree/
templates/
AppThree/
urls.py
views.py
models.py
장고 루트 폴더
루트 폴더 인Project Folder
에는 Django 프로젝트와license
,README
,environment
,requirements.txt
,.gitignore
및Documentation or Doc
과 같은 프로젝트와 관련된 기타 모든 파일이 포함됩니다.
Django 프로젝트 폴더
Django 프로젝트MyProject
내에manage.py
파일,media
폴더,settings.py
파일이 포함 된MyProject
폴더 및 Django 애플리케이션이 있어야합니다.
Django 프로젝트 설정 폴더
기본적으로 Django는 단일settings.py
파일과urls.py
,wsgi.py
등과 같은 기타 중요한 파일을 제공합니다.settings.py
파일에는 프로덕션 및 개발. 따라서 더 중요한 프로젝트를 위해 길이가 늘어날 수 있습니다.
따라서 설정을 각각의 파일로 분할하는 것이 좋습니다. base.py
파일에는 개발 및 프로덕션 모두에 적용되는 설정이 포함되어 있습니다. development.py
파일에는 개발에 적용 할 수있는 모든 설정이 포함되어 있으며production.py
에는 모든 프로덕션 설정이 있습니다.
개발 및 프로덕션 측은 서로 다른 데이터베이스 설정, 암호 유효성 검사 설정, 이메일 설정, 결제 설정, API 키 및 기타 구성을 가질 수 있습니다.
Python Decouple
을 사용하여 민감한 데이터를 저장하는 경우.env
파일도이 폴더에 있어야합니다.
Django 애플리케이션
모든 Django 애플리케이션에는static
폴더와templates
폴더가 있습니다. 이 폴더 안에는 응용 프로그램 이름별로 다른 폴더가 있습니다. 이 폴더 안에 모든 정적 파일과 템플릿을 배치합니다.
이 접근 방식을 통해 동일한 이름을 가진 여러 파일을 가질 수 있습니다. 예를 들어 각 응용 프로그램에는index.html
파일과style.css
가있을 수 있으며 이에 액세스하기가 더 쉬워집니다.
----------
HTML Files
----------
{% url 'AppOne/index.html' %}
{% url 'AppTwo/index.html' %}
{% url 'AppThree/index.html' %}
---------
CSS Files
---------
{% static 'AppOne/style.css' %}
{% static 'AppTwo/style.css' %}
{% static 'AppThree/style.css' %}