1. Variable Routing
2. 다중 앱
3. Naming URL Patterns
1. url 변수(Variable Routing): URL 일부를 변수로 지정하여, 해당 부분에 들어온 값을 view로 넘겨주고, view에서 변수를 받아서 그 부분에 맞게 처리하도록 할 수 있음.
→ 하나의 URL에 마음껏 여러 페이지 연결 가능
2. 다중 앱(Multiple Apps): 하나의 프로젝트는 여러개의 앱으로 구성됨. 각각의 기능별로 나누어서 App으로 분리하는 것이 좋은 구조
Urls 분리하기
- django가 기본적으로 생성해주지 않기 때문에 직접 생성해야 함
각각의 app 폴더 안쪽에 urls.py 이름으로 파일 생성
# urls.py 기본 세팅
from django.urls import path
urlpatterns = [
]
다른 URLconf 모듈을 포함하기 (include)
- django의 urls는 다른 urls를 포함할 수 있음
- 프로젝트의 urls에 include를 통해 우리가 분리한 app의 경로를 포함
urls 연결하기
- include되는 urls에는 반드시 urlpatterns 가 필요 (빈 리스트이더라도 있어야 함)
- articles/test/ 로 요청이 들어오면 아래의 흐름을 따름
- 프로젝트의 urls.py 에서 articles/ 패턴과 일치함을 발견
- articles 앱의 urls.py로 다음 처리를 넘김
- articles앱의 urls.py에서 test/ 패턴과 일치하는 url 패턴을 탐색
- 일치하면 해당 views로 가서 처리
url 정리하기
url 옮기기
- (문제) 현재는 users/users/~~~ 으로 접근을 해야함.
→ url을 수정할 필요가 있습니다.
views 옮기기
templates 옮기기
- users앱에도 templates 디렉토리를 생성하고 필요한 template을 옮김
3. Naming URL Patterns: 어떠한 URL을 작성할 때 직접 하드코딩 하지 않고 각각의 URL에 ‘이름’을 붙여주는 것(특정 경로에 대한 의존성 제거)
- 이전에 hello/ 가 지금은 articles/hello/ 로 바뀌었기 때문에 이에 관한 경로코드도 수정해야하는 번거로움이 있음
- path() 함수의 name 파라미터 사용
- URL이름 사용하기
- 이제 직접 URL을 하드코딩 하지 않아도 됨
'Django' 카테고리의 다른 글
ORM(Django) (0) | 2024.08.14 |
---|---|
모델 및 마이그레이션 (0) | 2024.08.14 |
Django GET 메서드 기초 (0) | 2024.08.12 |
Django Template System 기초 (0) | 2024.08.09 |
장고를 이용한 처음 세팅 (0) | 2024.08.08 |