Python

    [Django] django -mysql 연동

    @@@@ 2020/6/20 aws ec2 ubuntu 18 기준! @@@@2020/10/27 mysqld.cnf 파일수정 추가 외부접속 1. mysql 설치 apt install mysql-server mysql-client // 아마존 리눅스 일경우 (mysql 5.7) -sudo yum install mysql57-server -sudo service mysqld start 2 . 아이디 생성 mysql -u root -p //임시 db 생성 create database django ; //사용자 생성및 '%' 외부권한 접속 허용 grant all privileges on django.* to 사용자이름@'%' identified by '사용자패스워드'; //저장 flush privileges; qu..

    [Django] React -Django cors

    리액트에서 Axios 로 Django(DRF) url 로 값을 받아오려는데 문제가 생겼다. No Access-Control-Allow-Origin' 관련한 오류가 바로 Cross Domain 이슈!!!! 이를 해결하기위해서는 서버에서 접속을 허용한다고 설정을 해줘야한다고 한다! django cors header 라이브러리 설치하자! 먼저 CORS란 뭘까? CORS는 Cross Origin Resource Sharing의 줄임말입니다. 즉, 도메인 주소가 다른 서버에 http request를 전송하는 걸 이야기 합니다. 최신 웹 브라우저들이 보안상의 이유로 외부 Host로 접속하는 것을 차단하는 문제를 해결하기 위해 CORS표준이 제안되었고 요즈음엔 거의 일반화 되었습니다. 아하 ! pip install ..

    [DRF] serializer , form ..

    DRF( Django rest framework) 에서는 직렬화(serializer) 기능이있다. 직렬화에대하 한번 알아보자! 모든 프로그래밍 언어의 통신에서 데이터는 반드시 문자열로 표현되어야한다! 예를 들자면.. 송신 : 객체를 문자열로 변환하여, 데이터전송 -> 직렬화 수신 : 수신한 문자열을 다시 객체로 변환하여 활용 -> 비직렬화 각언어에서 모두 지원하는 직렬화 포맷에는 대표적으로 json , xml 이있다 ! DRF 에서는 ModelSerializer 를 통해 Json 직렬화 를 한다. Serializer/ModelSerializer는 기존 장고에서의 Form/ModelForm 과 비슷한느낌이다. 코드로 보여주자면.. 굉장히 비슷하다 결론은 공통점은 폼필드 지정 or 모델로부터 읽어온다 차이점..

    [Django] django-debug-toolbar

    https://django-debug-toolbar.readthedocs.io/en/latest/ Django Debug Toolbar — Django Debug Toolbar 3.0a2 documentation © Copyright 2020, Django Debug Toolbar developers and contributors Revision 88759a74. django-debug-toolbar.readthedocs.io 장고 디버깅에 도움을 줄수있는 debug_toolbar 를 사용 하기로했다. 이렇게 편한게 있는지 몰랐네;; Django의 버전부터, cpu, 설정, 헤더, 요청, sql, 정적 파일, 템플릿, 캐시, 신호(signal), 로깅 .. 등등 많다! 다만 주의사항이 1. 템플릿에 반드..

    [Python] 아나콘다 환경에서 쥬피터 노트북 사용

    장고 사용도중 쿼리 확인이나 데이터 확인을위해 쉘을 사용했는데 너무 불편해서 쥬피터 노트북을 사용하기로했다. 그리고 데이터 시각화도 언젠가 해복고싶기도하고 ! conda install jupyter 설치하면 jupyter 명령어 사용이 가능하다. jupyter notebook 명령어를 입력하면 창이 뜨는 걸 볼수있다. 오른쪽 위부분에 new 를 클릭하고 python3 를 고르면 새로운창이뜬다. 쿼리를 확인하기위해 다음과 같이 입력했다. 빨간 박스부분은 장고 2.x 버전대는 안적어도되나 3.x 버전부터는 적어줘야지 애러가안뜬다.

    [Django] Static , Media

    static 파일 -다른 프레임워크에서도 비슷한 개념으로 쓰임 -개발 리소스로서의 정적인파일 (js,css,image ...) 개발자를 위한 파일 -앱 , 프로젝트단위로 저장 , 서빙 media 파일 -장고에만 존재 -File/Image Field 를 통해 저장한 모든파일 -DB 필드에는 저장경로를 저장하며 , 파일은 파일 스토리지에 저장 -프로젝트 단위로 저장 ,서빙 Medai 파일 처리순서 1. HttpRequest.FILES 를 통해 파일이 전달. 2. view or form 로직을 통해 , 유효성 검증을 수행 3. FIle/ Image Field 에 경로 를 저장 4. setting.py 에서 MEDIA_ROOT 경로에 파일을 저장 setting.py MEDIA_URL = '/media/' MED..

    [Django] DRF 로그인, 회원가입 [미완]

    로그인 관리를 위해 Django-rest-auth 를 사용한다. 1. pip install django-rest-auth 2. setting.py 에 추가 'rest_auth' token authentication을 통해 구현하기로했다. .. JWT로 구현하기 로 결정했다. 로그인 로그아웃 과정 1. 화면에서 사용자가 email, password를 입력을 한다. 2. 사용자가 입력한 email, password 를 서버로 보낸다. 3. Email, password 가 맞다면 고유한 TOKEN을 발행한다. 4. 발행된 토큰을 response로 보낸다 (front) 5. 토큰을 클라이언트 어딘가에 저장해 놓는다. (cookie or session) 6. 다른 API를 사용할 때마다 header에 TOKEN을..

    [Django] Django RestFramework (DRF)

    지금마음이 급해서.. 중요한것만 정리 1. pip install djangorestframework 설치후 setting.py INSTALLED_APPS에 'rest_framework ' 를 추가해준다 모델생성후 . 2 . serializers.py 작성 # Serializer는 말 그대로 직렬화하는 클래스로서 사용자의 DB안에 # 사용자 프로필 사진, 이메일, 이름, 성별이 있다고 가정하면, # 사용자 모델 인스턴스를 JSON형태 혹은 Dictionary형태로 직렬화 할 수 있다.

    [Django] WSGI 란?

    nginx 에 연결할때보면 wsgi 라는 걸 자주 볼수있다. 단순히 파이썬이 웹서버와 통신하기위한 것 이라고만 알고있는데 자세히 알아보기로했다. 개요 일반적으로 웹서버(Apache,Nginx 등) 은 Tomcat,Php, Node, 등의 앞단에 배치되어 프록시,보안,정적파일 제공, 등의 역할을 한다. 하지만 웹서버는 php, python , java 등의 언어를 해석할 능력이 없기때문에 프로그래밍 언어를 해석할수있는 인터페이스, 즉 CGI가 필요하다. WSGI는 python 애플리케이션과 웹 서버가 통신하기위해 정의된 표준 인터페이스 스펙이다. CGI와 WSGI는 웹 요청을 처리 할 수있는 인터페이스라는 점에서는 같지만, CGI 는 WSGI 보다 low level에 있다 Django에서 프로젝트를 생성하..

    [Django] django-dotenv

    프로젝트폴더에 .env 파일을 만들고 변수들을 지정할수있다. 이렇게 하면 보호가 필요한 소셜로그인 key값이나 다른 API key값, DB , 메일서버등 등을 숨기고 사용할수있게된다. 1. 설치 pip install django-dotenv 2.manage.py import dotenv # 추가 if __name__ == '__main__': dotenv.read_dotenv() # 추가 main() main() 함수가 출력되기전에 값을 불러온다. 3. 불러오기 os.environ.get("변수") 형태로 사용 ex) app_key = os.environ.get("KAKAO") 끗 DB 유저이름이나 비밀번호에도 적용해야징