Django tutorial 1.

Sinjae Lee·2021년 6월 16일
0
post-thumbnail

1. Django 로 official 문서에 있는 Poll 앱을 만들어 보고자 한다.

conda create -n polltest python
conda activate polltest

위와같이 가상환경을 만들어준 다음

django-admin startproject mysite

mysite 라는 프로젝트를 만들어줬다

위의 형광펜 부분과 같은 파일들이 생긴다.

여기 아래 mysite 를 하나 더 만들어 주면 실제 프로젝트의 패키지들이 하위 디렉토리에 저장된다.

mysite
├── db.sqlite3
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-39.pyc
│   │   ├── settings.cpython-39.pyc
│   │   ├── urls.cpython-39.pyc
│   │   └── wsgi.cpython-39.pyc
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py

이 안의 파일들을 살펴보자

  • __init__.py : 해당 디렉토리를 패키지로 읽어달라는 파일이다.
  • settings.py : 현재 django 프로젝트의 환경 셋팅이 포함되어있다.
  • urls.py : 현재 django로 작성된 사이트의 목차라고 할 수 있다.
  • asgi.py / wsgi.py : 서버 게이트웨이 인터페이스로 해당 파일들이 있어야 서버로써 작동 가능하다.

아래는 Django의 구동 방식이다.
맨위의 client - web browser 에서 request 보내면 urls.py 에서 view 로 해당 request 내용을 보내고 models.py 에 data 를 요청한다. data base 에서 받아온 data 를 view를 통해 template 즉 front server 와 통신하여 해당 데이터가 가시적으로 보이게 되는것이다.

2. 설문조사 앱을 만들자

2.1 app 구조

아래와 같이 polls 앱을 생성해주자

python manage.py startapp polls
mysite
├── db.sqlite3
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── __pycache__
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── polls
   ├── __init__.py
   ├── __pycache__
   ├── admin.py
   ├── apps.py
   ├── migrations
   │   ├── __init__.py
   │      
   ├── models.py
   ├── tests.py
   └── views.py

polls 앱이 생성되었다.

앱을 생성해줬으면 django에게 해당 앱의 경로를 알려줘야한다.
settings.py 의 INSTALLED_APPS에 추가 해주면 된다.
polls.apps.PollsConfig
에서 PollsConfig 이 해당 app의 meta data 를 저장하는 class 로 apps.py 에 존재한다.

2.2 view 작성

  • 위의 django 구동 방식 사진을 보면 view 를 호출하기 위해서는 url이 연결되어있어야 한다는것을 알고 있습니다. 연결되는 url 이 있어야하는데 이때 url conf 가 사용된다.

    url conf란?

    client 의 request 에 장고가 가장먼저 하는것은 url을 분석하는것
    Django가 url을 분석하는 순서를 간단히 정리하면

    1. setting.py 의 ROOT_URLCONF 에서 URLconf위치를 찾는다.(urls.py)
    2. URLconf를 로딩해서 urlpatterns 변수에 지정되어 있는 URL 리스트를 검사.
    3. 위의 urlpatterns 에서 path 경로를 parsing 해서 polls 앱의 urls.py 를 탐색
    4. 여기서 view.index / view.detail / views.results 를 확인하고 해당 메소드를 호출한다.
    5. 호출 시 HttpRequest 객체와 매칭할 때 추출된 단어들을 view에 인자로 넘겨준다.
    6. 만약 매치되는게 없다면 err 페이지를 내보낸다.
      ref by
      https://docs.djangoproject.com/en/3.2/topics/http/urls/
      https://hitd.tistory.com/7

이 설명 처럼

polls>view.py 에 위와 같은 코드를 입력하고

urls.py의 url patterns 해당 경로를 넣어주고 mysite>urls.py 에서 polls>urls.py urlpatterns 까지 작성 완료 됐다면

$ python manage.py runserver

서버를 열었을때

다음과 같은 화면을 볼 수 있다.

  • 여기까지가 django tutorial 1 page
profile
Back-end developer

0개의 댓글