Django model&view 작성해보기

samdaso-o·2021년 7월 20일
0

Django

목록 보기
4/9

위코드에서 과제를 내주셨다. django를 이용해 다음과 같은 클래스를 구현할것
post
1. 신규 주인 등록
2. 강아지 등록(주인정보필요)

get
1. 주인 리스트
2. 강아지 리스트
3. 주인 리스트(키우는 강아지 리스트 포함)

일단 기본 django 기본세팅부터 시작하였다.
conda로 가상환경을 생성 -> mysql에서 database 생성-> django&mysqlclient 설치

그리고 ''django-admin startproject 프로젝트명''으로 프로젝트를 생성하였다.

my_settings.py라는 파일을 하나 생성하여, 공유하지 않을 내용들 databases, secret_key와 같은 소스들을 환경변수로 관리하기 위해 생성해 작성하였다.
그리고 settings.py에서 my_settings.py를 적용하기 위해 miport를 하고 database와 secret_key를 변경하였다.

그런 다음 pip를 이용해 PyMySQL를 다운받고, 그것 또한 settings.py에 import를 하고 선언하였다.

그런다음 corsheader를 설정해주었다.

마지막으로 허용값을 정의해주었다.

위코드에서 주어진 ERD는 다음과 같았다.

일단 나는 startapp 명령어로 app을 생성 후 setting installapp 리스트에 app명을 추가하였다. 그리고 model을 구현하였다.

1대1 테이블형식이였기에 크게 어려움없이 곧바로 코드작성을 하였다.

그런 다음 view.py를 작성했다.
일단 처음엔 POST항목의 코드들을 입력했다.

각 항목별로 다른 클래스로 작성했다.
일단 데이터베이스에 저장하기 위해서는 model에 작성되있는 함수들을 사용해야 하기 때문에 model를 미리 import를 하였다.
json.loads(request.body)라는 함수로 요청내용에서 body에 담긴 내용만 data라는 변수에 저장했다.
그리고 미리 import해두었던 model함수중 하나인 Owner를 이용해 데이터베이스에 입력되도록 하였다. create()안쪽의 내용을 자세히 보자면, name=data['name']이라는 것은 아까 미리 body값을 data에 저장을 해놓았는데 그 body값 안쪽에서 name이라는 내용을 찾아 입력해 name에 입력하겠다라는 뜻이다.
그리고 살펴볼내용이 마지막 return값이다. 만약 이 함수가 정상작동한다면, 내주는 값을 적어주었다. JsonResponse로 응답을 할 수있는 형식으로 만들어주고, 'MESSAGE':'CREATE'라는 텍스트를 출력하고 201코드로 성공적으로 작성되었다는걸 알렸다.
코드를 자세히 알고 싶다면 http항목을 다시 정독할것.

그 다음 GET을 구현했다.

GET도 마찬가지로 model에서 해당되는 함수의 object를 호출해 각 필드에 맞게 호출되도록 설정해주였다.

그 다음 마지막으로 url를 설정해주었다.

각 path를 지정해주고 view에 존재하는 함수마다 url값을 따로 지정해주었다.
만약 1번째 함수를 사용하고 싶다면,
--앞줄생략 /owners_dogs/owner_add 로 호출하여야 한다.
아 그리고 메인 url에도 설정을 해주어야 한다.

첫 부분은 앱명을 통한 url지정, include사용하여 해당 app url를 볼수있도록 하였다.

profile
ㅎㅅㅎ

0개의 댓글