본문 바로가기
스파르타코딩 AI웹개발 3기

내일배움캠프_WIL_2022.10.23

by 청귤에이드 2022. 10. 23.

지난 한 주 프로젝트를 수행하면서 많은 점들을 느꼈는데 

특히 열심히 공부했다고 생각했던 것에 비해 막상 기본적인 개념도 숙지 안된 것들이 꽤 많다는 것을 느꼈습니다.

이번 주 WIL은 장고가 구현되는 전반적인 메커니즘과 추가로 알게된 정보들을 간단히 정리하고자 합니다.

 

 

생성한 앱 디렉토리에서는 아래 세 파이썬 파일을 포함함.

model.py,  views.py,  urls.py

 

 

models.py는

 - 대개 class로 구성

 - 데이터베이스 생성을 위한 정보 입력 방식을 결정

 - 사용자, 이메일, 패스워드 등의 정보는 django.contrib.auth.models 에서 AbstractUser 를 import 해오기도 함

 

views.py는

 - 실제적인 기능을 구현하도록 로직을 짜는 파일

 - model의 어떤 데이터를 불러오고 저장할지를 결정

 - 클래스보단 함수 형식으로 표현할 때가 많음

 

urls.py는

 - views에서 지정한 함수들을 구현하도록 urlpatterns을 통해 url을 생성 

- url의 name을 지정해주어 (ex> name='signup') html DTL(장고 템플릿 언어) 사용 시 아래와 같이 활용할 수 있다.

(예시)  <form action="{% url 'user:signup' %}" method="POST">
 (user 앱의 'signup'이라는 명칭의 url을 태그로 하여 POST 방식의 form을 생성하겠다는 의미)

 

 - static 파일 적용 시, 마찬가지로 urlpatterns에 경로 지정해주어야 한다. (우선 settings에 입력)

(예시)  + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 
 
 
 
장고 템플릿 언어(DTL)는 크게 변수(Variables), 태그(Tags), 필터(Fillters)로 구분

 

변수는
 - {{  }} 이와 같은 구조를 가짐
 - views 또는 템플릿 내부에서 정의된 변수를 표현함
 - 딕셔너리 변수의 key를 입력하면 value를 나타낼 수 있음
 
태그는
 - {%  %} 이와 같은 구조를 가짐
 - 템플릿 파일 내의 변수에 대한 연산, 특정 파일이나 변수를 불러올 때 사용
 - extend/block, include, for, if, url, csrf_token, load, static 등 사용
 
필터는
 - {{ 변수|필터 }} 형태로 구성
 - 변수 값을 특정 형태로 변환시켜서 표시하기 위한 기능
 - 숫자필터, 문자열필터, 날짜필터, 복합 자료형 필터 등이 있음 (자세한 함수들은 구글링 참고)