지난 한 주 프로젝트를 수행하면서 많은 점들을 느꼈는데
특히 열심히 공부했다고 생각했던 것에 비해 막상 기본적인 개념도 숙지 안된 것들이 꽤 많다는 것을 느꼈습니다.
이번 주 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 등 사용
필터는
- {{ 변수|필터 }} 형태로 구성
- 변수 값을 특정 형태로 변환시켜서 표시하기 위한 기능
- 숫자필터, 문자열필터, 날짜필터, 복합 자료형 필터 등이 있음 (자세한 함수들은 구글링 참고)
'스파르타코딩 AI웹개발 3기' 카테고리의 다른 글
| 내일배움캠프_TIL_2022.10.26 (0) | 2022.10.26 |
|---|---|
| 내일배움캠프_TIL_2022.10.24 (0) | 2022.10.24 |
| 내일배움캠프_TIL_2022.10.21 (0) | 2022.10.21 |
| 내일배움캠프_TIL_2022.10.20 (0) | 2022.10.21 |
| 내일배움캠프_TIL_2022.10.19 (0) | 2022.10.20 |