일단 장고 웹 프레임워크의 튜토리얼을 마치고 처음 혼자하게 되었을 때 그 막막함이란.. 잊지말자
뭐부터 해야할지 전혀 감이 안 잡혔었다.
일단 어제와 오늘 짬을 내어 했던 것들을 정리한다.
일단 Account의 앱이 만들어졌고 그 안에서 모델을 건든다.
일단 Account라는 클래스를 만들어서 여러가지 정보를 넣을 수 있는 모델을 만들었다. 데이터베이스에 넣을 수 있는 모델스를 먼저 만들었다.(짜집기)
모델을 넣고 나서 할 일은 모델이 어떻게 구현될 것인지 하는 것이다. 앱의 view를 책임지는 views.py에 들어와 필요한 것들을 집어 넣는다.
from django.shortcuts import render은 패스 여기서 쓰지않음.(튜토리얼때 쓰던거 가져옴..안될 땐 이거저거 다 긁어오게 됨)
import json ->> json형식을 읽을 때에 필요.
from django.views import view -->> 장고에서 제공하는 views .
from django.http import JsonResponse, HttpResponse -->> 응답받게 해주는 것들
from .models import Account -->> 방금 맨 위에서 내가 넣었던 것들을 불러와준다.
POST일 때와 GET일 때 나뉘어서 정해줌. 누군가(내가) post를 하면 json 파일의 바디를 데이터로 지정하여 Account.objects.create(어카운트.객체를 만듦) 이름과 이메일 패스워드를 받아 저장한다.
name = data['name'] 이 뜻은 손님에게 name=옆에 것을 받으면 data 딕셔너리에 name키에 밸류를 저장하라는 뜻이다.
그렇게 잘 받아먹었으면 return 석세스 를 해준다. 응답코드는 200.
GET일 때는 account 의 리스트를 보내준다.
위와 같이 post로 받았을 때 제이슨 바디를 호출한다.
만약 objects를 필터해서 data['name']을 받은 것을 데이터가 똑같은게 있을 때! user를 정의하고 유저의 패스워드가 데이터안에 있는 패스워드가 같을 때 리턴 200해줌.
이름이 똑같은 게 없으면 401을 호출, 이게 다 안됬을 때는 400을 호출
키에러는 따로 빼고.
원래 여기다가(settings.py에 지정되어 있는 py파일) urls를 다 등록했었는데, 방대해졌을 때 url을 관리하기가 힘들다고 각 앱 디렉토리에 urls를 만들어서 관리하라는 소리를 듣고 나서 보는 것처럼 만들었다.
account 라는 것이 주소에 들어있으면 바로 account.urls에 있는 걸 참조하라! 라는 뜻이다.
localhost:8000/account 이렇게 치고 들어오면 바로 account에 있는 urls의 urlpattern을 따라간다.
include를 쓰려면 import 에 추가해주자.
**주의 할 것은 메인 urls에서는 account만 적어주고 슬래쉬는 뺀다. 그리고 앱 urls에 들어가서는 앞에 '/'를 붙여준다.
없던 파일을 만들다보니 복사 붙여넣기를 잘해야 한다. 그리고 from .views 에서 AccountView기능과 사인인 기능을 넣어준다. 안넣으면 뭔소리인지 장고가 못 알아 먹음.
localhost:8000/account 뒤에 ' ' 이렇게 아무것도 없으면 AccountView.as_view()를 연결 시켜주고
localhost:8000/account 뒤에 sign-in이 있으면 SignIn.as_view()를 연결 시켜라 라는 뜻이다.
오직 models.py와 views.py 그리고 두개의 다른 urls.py를 건드렸다.
이런 다음에 실험을 해본다. python manage.py runsever를 매니지.파이 있는 곳에서 쳐서 서버를 켜주고 다음의 그림처럼 타이핑한다.
엔터를 쳤을 때 나오는 화면
임의의 이메일과 비밀번호기 때문에 오해없었으면 좋겠다.
이름과 비밀번호를 똑같이 적으니까 제대로 200이 리턴되었다.
잘못된 비밀번호를 쳤을 때
그리고 이름을 잘못 넣었을 때,
이름이 잘못 되니까 400이 호출되었다. 아까전에 유도한대로 응답코드도 다 매니지할 수 있다. 이제 댓글기능만 만들면 된다. 더 노력해야지~~ 내일.. 오늘은 여기까지
'Framework > Django' 카테고리의 다른 글
TID-장고 글올리기, 회원가입, 로그인(Comment, Sign-up, Sign-in)기능 만들기 (0) | 2020.05.17 |
---|---|
TIL - 장고 코멘트 기능 ? (Django practice) (0) | 2020.05.15 |
Session-Django에 대하여(about Django) (0) | 2020.05.12 |
TIL-쟝고 간단 정리(Django review) (0) | 2020.05.11 |
TIL-장고 튜토리얼#6(Django tutorial #6) (0) | 2020.05.11 |