티스토리 뷰

Web/Django

3. django의 파일구조

HAN_PY 2020. 4. 28. 23:55
반응형

프로젝트 파일 설명

장고에서 왼쪽의 트리를 프로젝트라고 한다.

오늘은 프로젝트에 대해 설명해 보고자 한다.

 

hanpy파일 안에 들어있는 4개의 .py이가 프로젝트관련이라고 보면된다.

__init__.py

settings.py

urls.py

wsgi.py

 

pages파일이 내가 만든 app과 관련이 되어있다고 보면된다.

__init__.py

admin.py

apps.py

models.py

tests.py

views.py

 

 

 

정말 간단하게 지금 상황에서 알아야 할 정도만 설명을 할거다.

혹시나 더욱 많은 것들이 궁금하다면, 아래의 홈페이지에 가서 보면된다.

여기서는 기본적인 틀만 설명한다.

 

https://github.com/django/django

 

django/django

The Web framework for perfectionists with deadlines. - django/django

github.com

 


 

프로젝트 폴더

  • __init__.py

  • settings.py

    • BASE_DIR : 기본경로

    • SECRET_KEY : 암호화된 키

    • DEBUG = True : 개발모드라 디버그를 쓰고 있다. 즉, 오류 표현을 쉽게 볼 수 있다.

    • ALLOWED_HOSTS = ['*'] *은 모든 것을 의미한다.

      • *.txt 적으면 확장자가 txt인 모든 파일을 뜻한다.

    • INSTALLED_APPS

      • 장고가 기본 서버를 구동하기 위해서 미리설치 해놈.

      • 다만 우리가 앱을 직접 만들었다면 추가로 등록해야한다

    • TEMLPATES 관련 내용이 있네.

    • DATABASES 관련 설정도 들어가 있네. 나중에 설정 바꿔서 쓴다.

    • PASSWORD 관련 설정도 있네.

    • LANGUAGE_CODE = 'ko-kr' 한국어 설정
    • TIME_ZONE = 'Asia/Seoul' - 우리나라 시간 기준으로 하려면 설정해 주면된다.
      • 데이터 베이스에 저장되고 출력되는 시간.

    • USE_I18N = True

      • I18N

        • I18N은 `internationalization`에서 i부터 n까지을 제외하고 사이의 글자 수가 18개라 이렇게 적은거다.

    • USE_L10N = True

      • L10N

        • localization의 첫, 끝 제외하고 사이 개수가 10개라 저렇게 적은거다

    • USE_TZ = True

      • TZ는 위의 TIME_ZONE을 의미

    • STATI_URL

      • 다음에 설명

    • project를 시작하게 되면 ALLOWED_HOSTS 설정과 Locale 정보 설정을 하자.
    • app을 새롭게 만들면 installed_APPS들을 수정을 해야한다.
  • urls.py

    • 지금까지 우리가 열심히 만들고 있는것.

  • wsgi.py

    • 지금은 기억 할 필요 없고 나중에 배포 작업 할 떄 사용한다.

    • Web Server Gateway Interface

    • 파이썬 기반으로 웹써버를 만들게 되면 인터페이스를 이렇게 구성을하자.라는 내용

  •  

    일단 여기서 기억 할 것은 `settings.py``urls.py`가 있다.

     

     

     


 

 

  • app폴더
    • migrations 폴더

    • templates는 우리가 만든거다.

    • `__init__.py`

    • admin.py

    • apps.py

    • models.py

    • tests.py

    • views.py

    • 이렇게 py파일이 5개 있는게 기본이다.

  • pages 안에 있는 manage.py
    • 여기서의 핵심은 명령을 할 수 있도록 도와주고 기반이 되는 파일이다.

    • 절대 수정하지마

    • 모든 명령은 `python manage.py`로 진행한다. ex) +runserver ~

  • app 폴더(tmeplates)
    • admin.py

      • 나중에 알아본다

      • 관리자 view를 위해 필요한것들이다.

    • models.py

      • 나중에 알아본다.

      • model이다.

    • apps.py

      • app 자체의 설명

    • tests.py

      • 테스트 코드를 작성하기위한 것

다시 시작

__init__.py

init.py를 열어보면 위와 같이 비어있다. 그래서 대부분 학생들이 지워도 된다고 생각한다. 그러나 지우면 안된다!!

장고가 내부적으로 각각의 파일들을 실행시키는 과정들이 모듈패키지 형식으로 되어있다.

모든 폴더는 모듈 단위로 움직인다. __init__.py 각각의 폴더를 파이썬의 모듈로 인식 할 수 있게 한다.

ex) from django_intro import urls.py

from 뒤에 불러올 파일의 폴더를 적고 import 뒤에 불러올 파일을 적는다.
즉, init는 모듈과 관련된 내용이라 절대 지우면 안된다.


urls에 view를 불러오기 위한 코드인 `from A import B` 가 있었다.
ex) from pages import views (페이지 안에 있는 뷰를 불러오는거다.)
물론 단순하게 import로 불러올수도 있긴하다.

즉, '__init__.py'라는 건 하나의 모듈이구나 라고 생각 할 수 있다.

 

from django.db import models

장고 패키지를 pip로 설치 했는데 그안의 django 안의 db 안에 models를 불러오기 위한 코드다.

 

 

 

이제 배운 것들을 활용하여 간단한 실습을 해보자.

han-py.tistory.com/44

 

4. django_간단한 문법실습

첫번째, url.py path('index/' ~~ 에서 index뒤에 반드시 /를 붙인다. views.index의 뜻은 views 안의 index 함수를 실행하겠다는 말이다. 두번째, views.py 그리고 random함수를 썼기 때문에 제일 윗부분에 imp..

han-py.tistory.com

 

 

반응형

'Web > Django' 카테고리의 다른 글

5-1. django_variable routing 기초(str)  (0) 2020.05.01
4. django_간단한 문법실습  (0) 2020.04.30
2-2. django_python 함수이용하기  (0) 2020.04.26
2_1. django_app만들기  (0) 2020.04.22
1. django 시작하기  (0) 2020.04.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함