본문 바로가기
Python/Django

django 기초부터 다시 1

by 코드뭉치 2023. 4. 12.

프로젝트 폴더와 manage.py

   
__init__.py   파이썬에게 이 디렉토리를 하나의 파이썬 패키지(모듈)로 다루도록 지시하는 파일.
Python 공식 홈페이지의 패키지
settings.py 현재 Django 프로젝트의 환경 및 구성을 저장해주는 파일.
환경 설정이 어떻게 동작하는지 Django settings
urls.py  Django project 의 URL 선언을 저장. Django로 작성된 사이트의 “목차” 라고 할 수 있다.
URL 에 대한 자세한 내용 URL dispatcher 
asgi.py wsgi보다 성능이 향상된 비동기식 웹서버를 할 수 있게 해주는 파일.
ASGI를 사용하여 배포하는 방법 
wsgi.py 웹서버 게이트웨이 인터페이스. 나중에 배포할 때 사용.
파이썬, 장고 프레임워크가 컴퓨터에서 돌아갈 때 어떻게 웹서버와 연결할지를 도와주는 파일.
WSGI를 사용하여 배포하는 방법
manage.py Django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티. 
manage.py에 대한 정보 django-admin and manage.py

 

Django의 DB

 장고는 sqlite3를 기본적으로 탑재해서 준다. 모바일에서 자주쓰는 db로, 연동 과정이 복잡하지 않아 바로 사용할 수 있다.

성능이 크게 좋지는 않음. 필요 시 mysql/mongodb를 연동해서 쓸 수 있다.

 

Django에서 앱 추가하기

python manage.py startapp articles
# articles 앱 추가

일반적으로 어플리케이션 이름은 복수형으로 해주는 것이 좋다.

 

어플리케이션의 구조

admin.py 관리자용 페이지 관련 기능 작성. 모델들을 등록하면 관리자 페이지에서 접근할 수 있다.
apps.py 앱의 정보가 있는 곳. 수정할 일은 거의 없다.
models.py  데이터베이스에 어떤 스키마가 들어갈지 클래스로 작성
test.py 테스트코드, 기능 하나를 만들 때마다 정상작동하는지 확인
views.py api 로직들이 작성되는 곳. 대부분의 코드들이 짜여지는 곳
views 작성법

 

어플리케이션 등록 

INSTALLED_APPS = [

    'articles',

    ....

]

로컬 앱들은 위에 그 밑에 서드파티 제일 아래에 디폴트 장고 어플들을 놓으면 된다.

templates 디렉토리는 주로 app 폴더 내에 만들어준다.

 

urls.py

path(url, 함수, name)

Django는 urlpatterns의 첫번째 패턴부터 시작하여, 일치하는 패턴을 찾을 때까지 요청된 URL을 각 패턴과 리스트의 순서대로 비교한다. 즉 URL 패턴의 순서를 고려하는 것도 중요하다.

URL 패턴은 정규표현식을 사용하여 구성할 수도 있다. 이를 통해 동적인 URL매칭이 가능해진다.

 re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive)

이런식으로 year와 month변수에 각각 4자리 숫자, 2자리 숫자 값을 넣을 수 있다.

 

views.py

웹 어플리케이션의 로직이 구현되는 곳. Django에서는 views.py 파일을 어플리케이션 별로 구분하여 관리한다.

 

 웹 어플리케이션에서 클라이언트의 요청(request)을 처리하고, 응답(response)을 반환하는 로직을 구현하는 파일이다. Django에서는 views.py에 함수 또는 클래스를 정의하여, URL패턴에 매칭되는 요청을 처리한다. 모델로부터 데이터를 조회하거나, 템플릿을 렌더링하여 HTML을 생성하고, 클라이언트에게 응답을 반환한다.

 

 따라서 view.py에서 정의하는 함수는 request를 반드시 첫번째 인자로 받아줘야 한다. request 객체에는 URL 매칭정보, HTTP메소드, 요청 헤더 등을 포함한다. 

 

render

render도 마찬가지로 request를 첫번째 인자로 받아야 한다.

요청이 들어왔을때 HttpResponse를 돌려주는데, 그 안에 result 장고 템플릿에 있는 것들을 이용해서 arg들을 채워서 돌려보내준다.

 

 

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

Serialization, Parse  (0) 2023.04.20
DJANGO 심화  (3) 2023.04.18
erd  (0) 2023.04.06
Django - 로그인 기능  (0) 2023.04.04
Django - 회원가입 기능과 CSRF 토큰  (0) 2023.04.04

댓글