Tags
- Queue
- distinct
- 백트래킹
- drf
- Article & User
- Django
- migrations
- 통계학
- 스택
- count
- N:1
- outer join
- delete
- 그리디
- stack
- M:N
- ORM
- Tree
- create
- 쟝고
- regexp
- DB
- 뷰
- 큐
- SQL
- 완전검색
- Vue
- update
- 트리
- 이진트리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Notice
Recent Posts
Link
데이터 분석 기술 블로그
Django에 대하여(7)_Django URLs 본문
URL dispatcher(운항 관리자, 분배기)란, URL 패턴을 정의하고 해당 패턴이 일치하는 요청을 처리할 view 함수를 연결(매핑)하는 것입니다.
앞서 설명드린 URL 관리의 문제점은 템플릿의 많은 부분이 중복되고, URL의 일부만 변경되는 상황이라면 계속해서 비슷한 URL과 템플릿을 작성해야 하는 것입니다.
1. Variable Routing
Variable Routing이란, URL일부에 변수를 포함시키는 것으로 변수는 view 함수의 인자로 전달할 수 있습니다.
위에서 int, str과 같은 URL 변수의 타입을 Path converters라고 하고 5가지 타입을 지원합니다.
#urls.py
urlpatterns = [
path('hello/<str:name>/', views.greeting),
]
# views.py
def greeting(request, name):
context = {
'name': name,
}
return render(request, 'articles/greeting.html', context)
<!-- articles/greeting.html -->
{% extends 'base.html' &}
{% block content &}
<h1>Greeting</h1>
<h3>{{ name }}님 안녕하세요 !</h3>
{% endblock content &}
#urls.py
urlpatterns = [
path('hello/<int:num>/', views.detail),
]
# views.py
def detail(request, num):
context = {
'num': num,
}
return render(request, 'articles/detail.html', context)
<!-- articles/detail.html -->
{% extends 'base.html' &}
{% block content &}
<h1>Detail</h1>
<h3>{{ num }}번 글 입니다.</h3>
{% endblock content &}
참고
1. 템플릿 기본 경로 외 커스텀 경로 추가하기
2. BASE_DIR
settings에서 경로 지정을 편하게 하기 위해 최상단 지점을 지정해놓은 변수
3. DTL 주의사항
- Python처럼 일부 프로그래밍 구조(if, for 등)를 사용할 수 있지만 명칭을 그렇게 설계했을 뿐이지 Python 코드로 실행되는 것이 아니며 Python과는 관련 없다.
- 프로그래밍적으로 로직이 아니라 프레젠테이션을 위한 것임을 명시해야 한다.
- 프로그래밍적 로직은 되도록 view 함수에서 작성 및 처리해야 한다.
- 공식문서를 참고해 다양한 태그와 필터를 사용해봐야 한다. https://docs.djangoproject.com/en/4.2/ref/templates/builtins/
'백엔드' 카테고리의 다른 글
Django에 대하여(9)_Model (0) | 2024.03.30 |
---|---|
Django에 대하여(8)_App과 URL (0) | 2024.03.29 |
Django에 대하여(6)_form 활용 (0) | 2024.03.27 |
Django에 대하여(5)_요청과 응답 (0) | 2024.03.26 |
Django에 대하여(4)_Django Template (0) | 2024.03.25 |