티스토리 뷰

반응형

본 게시물을 보기전에 아래 게시물을 먼저 보고 와주세요

https://rlg1133.tistory.com/37

 

Django + mySQL + Android Studio , 프로젝트 생성부터 retrofit 예제 까지 step by step(1)

본 게시물은 django, mysql, android studio가 설치 되었다는 가정하에 진행합니다. Step1 Django Project 생성&설정 경로 안에 django-admin startproject 명령어를 사용하여 장고 프로젝트를 생성한다..

rlg1133.tistory.com

 

 

 

 

 

Step2 Django + MySQL

 

서버를 실행 했으니 이제 모델을 만들어 mysql과 django를 연결해 사용하는 방법을 알아보겠습니다.

 

 주소창에 http://127.0.0.1:8000/admin를 입력해줍니다.

 

그럼 위와같은 화면이 나타나는데 아직 우리는 superuser계정이 없기때문에 로그인 할 수 없습니다.

*superuser = 관리자같은개념, 데이터를 조회하고 수정, 삭제할 수 있음

 

그렇다면 superuser를 만들어 주어야합니다.

 

위처럼 콘솔에 프로젝트 경로에서 

python manage.py createsupersuer를 입력하고 이어지는 순서대로 이메일, 비밀번호 등을 입력하여 superuser를 만들어 줍니다.(비밀번호 형식에 주의해주세요)

 

//django.db.utils.OperationalError: no such table: auth_user  에러 뜨면 python manage.py migrate 입력

 

그런다음 만들어준 계정으로 로그인을 합니다.

 

그러면 위와같은 화면이 나타납니다. groups과 users는 기본으로 들어있습니다. 신경쓰지 않아도 좋습니다.

 

이제 model.py에 들어가서 모델을 만들어줍니다.

 

Django에서는 mySQL쿼리문 대신에 ORM을 사용해서 테이블을 만들어주는데 위처럼 python class형식으로 테이블을 선언하고, 그 안에 파라미터형식으로 필드를 선언해줍니다.

 

간단한 테스트용이기 떄문에 Test라는 객체를 만들고 그안에 charfield의 test라는 필드를가진 필드하나짜리 테이블을 만들어줍니다.

 

그다음에는 admin.py 에 들어가서 코드를 작성해줍니다.

admin.site.register(Test)라는 코드를 넣어줘서 model.py안에 있는 Test클래스를 참조합니다.

//여기에 코드를 작성해주어야 아까 admin화면에서 이 Test테이블을 정상적으로 조작할 수 있습니다. 

 

다시 콘솔창에 프로젝트 경로로 들어갑니다.

python manage.py makemigrations 코드를 입력해줍니다

//변경사항이 있으면 적용하기전에 탐색해서 적용대기에 놓이게 해준다고 생각하면 편합니다.

 

python manage.py migrate 코드를 입력합니다.

//변경사항을 실제로 적용하는 부분입니다.

 

 

 

위와같은 과정을 거치면 migrations폴더에 test_app 0001.py 파일이 생길겁니다.

//변경사항을 기록하는 파일입니다.

 

이제 다시 127.0.0.1:8000/admin 주소로 들어가면

위와같이 우리가만들어준 TEST_APP 하위에 Tests라는 항목이 생긴것을 볼 수 있습니다.

//mysql에 직접 들어가서 테이블을 조회하면 test_app_tests라는 테이블이 생겨있습니다.

//위에 항목은 이 test_app_tests라는 테이블과 매칭됩니다.

 

 

하지만 아직은 이것을 제대로 사용할 수 없습니다.

몇가지 파일을 추가해 주겠습니다.

 

 

앱경로 하위에 serializers.py를 추가해주고 urls.py를 추가해줍니다.

//이 urls.py는 프로젝트 경로에 기본으로 생성된 urls.py에 나중에 포함시켜줄것입니다.

 

 

serializers.py 안에는 model과 1:1 매칭되는 serializer를 작성해주어야 합니다.

 

class이름은 TestSerializer로 지어주었습니다.

안에는 model과 fields가 있는데 model은 아까 우리가 만들어준 Test를 입력해주고

fields는 Test안에 필드들중에 표시하고싶은 것들을 순서대로 써주면 됩니다. 

우리는 test라는 필드 하나만을 작성하였으므로 test 하나만 넣어줍니다.

 

seridalizer를 작성하였다면 이제 viewset을 작성해줄 차례입니다.

 

 views.py에 들어갑니다.

 

이름은 TestViewSet으로 지어주었습니다.

하위에는 queryset과 serializer_class가 있는데 queryset에는 Test.objects.all()를 입력해줍니다.

//models.py의 Test 클래스안에 모든것을 의미한다는 코드입니다.

 

이어서 serializer_class에는 방금전에 만들어준 TestSerializer를 입력해줍니다.

 

 

여기까지 했다면 이제 프로젝트경로에 있는 urls.py을 열어줍니다. 

 

라우터에 방금 만들어준 TestViewSet을 넣어줍니다.

밑의 패스에는 test_app의 아까 새로 만들어준 앱경로 urls.py를 include 해줍니다.

그리고 뷰셋을 넣어놓은 라우터 또한 include해줍니다.

 

이제 앱경로의 urls.py를 열어서 test_app의 url을 작성해줍니다.

//rest_framwork를 사용합니다.

 

여기까지 했다면 아까 들어갔던 127.0.0.1:8000 경로로 다시 들어갑니다.

아까는 로켓모양이 있는 화면만 떳지만 이제는 뭔가 내용이 있습니다.

 

router에 작성해준 tests라는 이름으로 뭔가 한줄 생겨있습니다.

안에 내용을 한번 클릭해 봅시다.

 

 

 

아직 데이터베이스가 비어있기 때문에 [ ] 안에는 아무것도 들어있지 않습니다.

127.0.0.1:8000/admin 에 들어가서 Tests를 클릭합니다 이어서 add를 눌러 몇가지 데이터를 추가해 보겠습니다.

//값을 입력후 save를 누르면됩니다.

 

그다음에 아까 아무것도 들어있지 않았던 127.0.0.1:8000/tests로 돌아옵니다.

 

test1~3까지 추가해주었습니다. 

오른쪽위에 GET이라고 써져있는 부분을 JSON으로 바꾸어줍니다.

 

127.0.0.1:8000/tests 에서 127.0.0.1:8000/tests/?format=json 으로 바뀌면서 뭔가 익숙한 형태로 바뀌었습니다.

//json형식이라고해서 데이터를 주고받을때 사용하는 하나의 문법입니다.

//여기에다가 데이터를 추가하고 가져오고 수정하는 작업을 할것이기 때문에 이url을 꼭 기억해 두셔야 합니다.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함