django의 대략적인 작동 원리를 알아보자
사용자가 지정된 경로로 진입 > urls.py 해당 app으로 안내 > view라는 파일 안의 함수 작동
> model을 통해서 > DataBase에 진입 > 사용자에게 해당 정보를 전달 (html, json, xml)
app을 만들어 보자
django-admin startapp '원하는 app이름'
다양한 app들을 생성하며 여러 기능들을 구현하여 하나의 프로젝트를 완성해 나간다.
Routing 지정
myproject의 urls.py 파일을 열어보면 친절하게 방법을 설명해 놓았다.
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
해당 방법대로 해보자
- 1번에서 include함수를 사용하려면 include를 임포트 하라고 해서 해주었다.
- 2번처럼 경로도 지정해준다.('' , < 공백으로 두면 아무것도 입력 안 했을 때의 상태가 된다)
from django.contrib import admin
from django.urls import path, include # 1번에서 include함수를 사용하려면 include를 임포트 해라
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')) # 경로 지정. ''으로 비우면 경로를 입력하지 않았을때, 홈을 뜻함
] # 경로를 받았을 때 안내할 위치. myapp의 urls로 이동한다.
위에서 myapp의 urls 파일로 이동한다고 했으니 ('myapp.urls') urls.py를 생성해주자
생성한 뒤 아래의 내용을 입력해준다.
from django.urls import path
from myapp import views # myapp 디렉토리의 views.py를 임포트하겠다.
urlpatterns = [ # 경로들을 지정해주자
path('', views.index) # 경로 미입력시 views.py안의 index함수를 불러오겠다
]
그리고 views.py 파일도 코드를 추가해주자
from django.http import HttpResponse
from django.shortcuts import render, HttpResponse # 아래 함수에서 HttpResponse를 사용하기위해
# Create your views here.
def index(request): # 인자 이름은 아무거나 해도 되지만 통상적으로 request를 사용
return HttpResponse('Welcome!')# return 값으로 돌려줌 Http로 'Welcome!' 을 띄워주어라
서버를 실행 후 접속해보면
정리해보면
url 입력 > urls.py가 url을 읽어 myapp의 urls.py를 실행
> urls.py에 의해 views를 호출 index함수를 실행 > return값을 돌려줌
경로 지정해보기
myapp의 urls.py를 수정해보자
from django.urls import path
from myapp import views
urlpatterns = [
path('', views.index),
path('create/', views.create), # create/로 접속시 views.py의 create함수를 실행
path('read/<id>/', views.read) # read/<id>/로 접속시 views.py의 read함수를 실행
] # <id>는 아래 설명 참조
views.py에도 함수를 추가하자
from django.http import HttpResponse
from django.shortcuts import render, HttpResponse
# Create your views here.
def index(request):
return HttpResponse('Welcome!')
def create(request): # /create로 접속시 호출된다
return HttpResponse('크리에이트 입니다')
def read(request, id): # /read/<id>로 접속시 호출된다
return HttpResponse('리드 입니다 id는 : ' + id)
해당 주소로 접속해보면 잘 실행됨을 알 수 있다.
여기서 <id>의 역할은 무엇일까?
url에 read/2/ 또는 read/3/ 또는 read/13134/ 등등 아무거나 와도 된다는 뜻이다.
그리고 id인자를 받아 return 값에 함께 출력된다.
Youtube 생활코딩님의 수업 영상을 보고 복습을 위해 작성한 글입니다.
'개발일지 > Django' 카테고리의 다른 글
Django_CRUD_Update (0) | 2022.07.13 |
---|---|
Django_CRUD_Delete (0) | 2022.07.13 |
Django_CRUD_Create (0) | 2022.07.13 |
Django_CRUD_Read (0) | 2022.07.12 |
Django (0) | 2022.07.11 |