React + django + Mysql 연동하기

geonhee1492·2022년 7월 11일

django랑 Mysql 연동

장고 프로젝트에서 pip install mysqlclient

cmd 관리자권한으로 실행 -> mysql -u root -p 입력 -> 비밀번호 입력

연결할 데이터베이스 생성

하고 migrate해주면 끝

django랑 React 연동

https://breathtaking-life.tistory.com/137?category=835829#toc--%20%EC%9E%A5%EA%B3%A0,%20%EB%A6%AC%EC%95%A1%ED%8A%B8%20%EC%84%9C%EB%B2%84%20%EC%97%B4%EA%B8%B0
참고 블로그

django rest framework 를 이용할 것이다.
django rest api로 데이터를 react에 전달하고
react가 데이터를 뿌려줄 것이다.

rest framework 설치

settings.py에 등록

models 생성


하고 migrations, migrate 해주기

이렇게 하면 장고에서 제공하는 관리자 페이지로 데이터베이스 조작 가능
python manage.py createsuperuser로 어드민 계정 생성

serialize

JSON으로 보내야 하는 Restful API는 기존의 템플릿 문법 사용 불가.
그래서 Queryset을 JSON으로 매핑해줘야 하는데 이 과정을 serialize라고 부름.(그니까 리액트에 뿌려줄!!! 때만 Queryset->JSON으로 준다는거지,받을 때는 원래 JSON임)
serializer:DRF가 제공하는 클래스.DB 인스턴스를 JSON 객체로 데이터로 바꿔준다. 장고의 FORM과 유사

serialize.py 생성하고

* 깨알문법...파이썬에서는 클래스도 객체 취급(메모리에 할당되고 주소있음,변수에 할당 가능,매개변수로 클래스 넘기기 가능).

django에서 class Meta는 내부 클래스로(파이썬 메타클래스랑 다름)
여러 옵션으로 모델 관리 가능

views.py 작성(연습)

CRUD기능은 대충 APIview로 구현할 것이다.
APIview -> DRF 라이브러리. get,post 등 여러 메서드 사용 가능

일단 리뷰 전체 목록 보여주는 것만 구현했다.




나중에 설명 추가...아직 DRF를 잘 몰라서..

리액트 앱 만들기

https://devkor.tistory.com/entry/03-Django-Rest-Framework-Serializer-View-%EA%B0%9C%EB%85%90-%EC%9D%B5%ED%9E%88%EA%B8%B0
참고

이러꿍저러꿍 회원가입 창 만듬

이제 이 form의 value를 어떻게 옮기지 했는데 web api. 즉, document.getElementName을 사용해 변수에 저장한 후 axios를 사용해 url로 전송해주면 된다.

...

** 에러 의식의 흐름으로 해결하기...

아니 왜 안넘어가는거야 하...
CORS 문제인가...?
CORS는 신경썼는데도 403 forbidden 에러가 났다.
CSRF 에러이다.
CSRF: cross-site request forgery
요청 위조하는 공격이다. 그래서 방어를 위해 장고에서는 csrf token을 발급하는 것이다.
https://dev-guardy.tistory.com/80
여기서는 csrf 설정을 꺼버린다.

APIView를 쓸거면 CRUD 형식을 맞췄어야 되었다... drf 튜토리얼을 한번 해봐야 할 것 같다.. 그래도 일단 데이터 넘기는건 성공




일단 drf 튜토리얼부터 실습해보고 다시 해봐야겠다...!

profile
생각만 하면 망상, 만들면 개발자.

0개의 댓글