Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- QuerySetAPI
- SSAFYcial
- 리액트
- 알고리즘
- SQL
- 백준
- git
- VITE
- 플로이드워셜
- Django
- 14658
- vitepwa
- PWA
- pwa적용하기
- TypeScript
- 데코레이터
- 셀프넘버
- SSAFY
- react
- Python
- 싸피
- sqld
- 싸피10기
- js
- unionfind
- 싸피셜
- 머신러닝종류
- queryset
- db
- Javascript
Archives
- Today
- Total
Meme's IT
[Django] App URL 본문
만약 App이 많아졌을 때, 서로 겹치는 함수 이름이 있거나 / 같은 패턴의 url 주소를 이용하려면 어떻게 해야할까?
이러한 경우를 해결하기 위해, URL을 각자 APP에서 관리해야 함!
App URL mapping
프로젝트와 각 앱이 URL을 나누어 정의가 되어 관리를 편하게 할 수 있다.
→ urls.py의 구조를 바꿔줘야한다.
한번 해보기
기존의 url의 위치는 project/urls.py → 각각의 app에 urls.py를 만들어 줘서 각자 관리
1. 기존의 url 위치인 project/urls.py파일 수정
include() 함수: 프로젝트 내부 앱들의 URL을 참조할 수 있도록 매핑해주는 역할
2. 각 app에 urls.py를 생성
# articles/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('articles/', views.index),
path('dinner/', views.dinner),
]
# pages/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('index/',views.index),
]
그런데 이렇게 바꿔주면 url주소가 바뀌게 됨
→ 다 바꿔주지 말고, URL에 이름을 지어주면 굳이 주소를 안쓰고 이름으로 쓸 수 있지 않을까?
Naming URL patterns
URL에 이름을 지정해 주는 것, 실제 경로 대신에 지정한 name을 사용할 수 있어서 편리함
urlpatterns = [
path("index/", views.index, name= 'index'),
path('dinner/', views.dinner, name = 'dinner'),
path('search/', views.search,name = 'search'),
]
path 함수의 name 키워드 인자를 이용해서 지정해 줄 수 있다.
urls.py파일만 고쳐주는게 아니라 url을 사용하는 모든 위치를 변경해주기(ex. form의 action 속성)
'url' tag
{% url 'url-name' arg1 arg2 %}
주어진 URL 패턴의 이름과 일치하는 절대 경로 주소를 반환
근데 여기서 app1의 url이름과 app2의 url이름이 같으면..?
→ 이름에 성(= key)을 붙이자
'app_name' 속성 지정
# article/urls.py
app_name = 'articles' # app name추가
urlpatterns = [
path("index/", views.index, name= 'index'),
path('dinner/', views.dinner, name = 'dinner'),
path('search/', views.search,name = 'search'),
]
URL tag를 바꿔주기: 뒤에 app name 붙여주기
{% url 'articles:index' %}
'BackEnd > Django' 카테고리의 다른 글
[Django] Admin Site (0) | 2023.09.14 |
---|---|
[Django] Model과 Migrations (0) | 2023.09.14 |
[Django] 변수와 URL (0) | 2023.09.14 |
[Django] form활용: throw & catch (0) | 2023.09.13 |
[Django] 요청과 응답(form) (0) | 2023.09.13 |