세션 진행: 승현님
< 승현님의 말씀 >
- 꼭 Django shell 에서 원하는 값이 나오는지 확인하고 views.py로 넘겨라
- get, filter, all 를 먼저 마스터해라
Django CRUD 세션1에서는 models.py와 database에 대해서 공부를 했다면 오늘 세션은 클라이언트로부터 요청을 받고 urls.py에서 어디로 보내면 될지 결정 후에 views.py로 보내고
urls.py : 은행에서 번호표 뽑아서 안내해주는 사람
경로에 맞게 views.py로 안내를 한다.
그렇다면 나이키닷컴에는 앱이 예를 들어 뭐가 있을까?
회원관리 앱
상품관련 앱
매장찾기 앱
etc..
django-admin startproject 프로젝트 이름
python manage.py startapp 앱이름
create database "NAME" character set utf8mb4 collate utf8mb4_general_ci;
형 urls.py
from django.urls import path,include #include 추가 urlpatterns = [ path('user', include('users.urls')) #기본주소 뒤에 user라는 이름이 들어오면 users.urls로 안내 ]
동생 urls.py = 앱 폴더안에 따로 만들어야 한다.
from django.urls import path from .views import UserView # views.py에서 클래스를 가져와야 하니까 추가 urlpatterns = [ path('',UserView.as_view()) # as_view는 UserView클래스 안에 get이면 get을 실행 post면 post 실행해주는 함수 ]
views.py
from django.shortcuts import render # 필요없으므로 지워도 됨 from django.views import View # 장고에있는 views의 view를 상속받기 위해 import from django.http import JsonResponse # JsonResponse를 사용하려 import from .models import User # models 안에 User 클래스를 가져옴 class UserView(View): # 클래스이름은 models.py와 헷갈리지않게 하기위해 뒤에 view를 붙히는게 일반적 def get(self,request): # request가 get일 때 return JsonResponse({'message': 'SUCCESS !'}, status = 200) # Jsonresponse는 인자를 두개 받아야 됨 딕셔너리와 status
manage.py와 동일한 디렉토리에서 python manage.py runserver를 한 후 터미널 하나를 더 띄워서 http GET localhost:8000/user를 입력하면
내가 설정한 메시지와 200 OK가 나온다.
형 urls.py -> 동생 urls.py -> views.py -> models.py & DB