views.py파일은 라우팅이 들어왔을때 실행되는 함수를 의미한다.
[** urls.py **]
- 프로젝트 처음 시작할때 만든 config폴더에는 urls.py가 있다.
- urlpatters라는 변수로 라우팅 경로를 관리한다.
- 경로와 실행될 함수는 path함수로 관리하며 (<url경로>, <실행함수>) 로 입력한다.
#-------------------- rooms/views.py
#함수 입력
def say_hello(request):
return HttpResponse('hello')
#-------------------- config/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('room/, say_hello), #내용 추가
]
[** views.py **]
- 라우팅을 통해 어떤 경로가 요청되면 경로에 들어왔을때 함수를 실행한 후 화면에 뿌린다
- 함수는 인자로 request를 꼭 받아야 하며 문자열 응답시에는 HttpResponse()로 return 해야 한다
[** urls 분리하여 관리 **]
- api가 많아지게 되면 config/urls.py에 모든 url을 넣는것은 비효율적이다.
- 따라서, app별로 api를 관리하도록 하고
- config/urls.py에는 이들을 모으는 가장 큰 개념의 url만 관리한다.
- 이를 위해 app에 urls.py파일을 만들어 주고 config/urls.py를 수정한다.
#-------------------- rooms/urls.py(파일생성)
from django.urls import path
from rooms.views import say_hello
urlpatterns = [
path('', say_hello), #127.0.0.1:8000/rooms/로 들어가면 say_hello()가 실행된다는 뜻
path('test/', say_hello), #127.0.0.1:8000/rooms/test/로 들어가면 say_hello()가 실행된다는 뜻
]
#-------------------- config/urls.py
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('rooms/', include('rooms.urls'), #include를 통해 라우팅을 분기처리
]
[** url에 argument 적용**]
- url에 arguments를 붙여 함수를 실행하는방법
- app/urls.py에서 path('<<데이터타입>: argument_name>', <실행할 함수>) 형식으로 입력한다.
- app/views.py에서 실행할 함수의 인자로 argument_name을 넣어준다.
#---------- room/views.py
def see_one_room(request, room_id):
return HttpResponse(f"see {room_id}")
#---------- room/urls.py
urlpatterns = [
path('', say_hello), # 127.0.0.1:8000/rooms/ > say_hello()실행
path('<int:room_id>', see_one_room), #127.0.0.1:8000/rooms/<room_id>/ > see_one_room
]
'FrameWork > Django' 카테고리의 다른 글
DRF(Django Rest Framework) (0) | 2024.07.17 |
---|---|
Templates Rendering (0) | 2024.07.17 |
ORM (0) | 2024.07.15 |
App Apps (0) | 2024.07.15 |
App User (0) | 2024.07.13 |