전체 글
[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 유저이름이나 비밀번호에도 적용해야징
[Django] Forms API
Django Forms API: python 파일을 만들면 django가 labels , value, placeholder, selected .. checked ... 등등을 알아서 처리해준다. model과 비슷하다 난 forms.py를 만들어서 지정해주었다. forms.py # improt django forms from django import forms name = forms.CharField() # ModelChocie 는 반드시 쿼리셋을 적어줘야한다 type = forms.ModelChoiceField(queryset) views.py print(form) form 으로 값들을 가져왔지만 html 테그도 몽땅 출력하는걸 볼수있다! 선택한 옵션만 가져오려면. form 에서 cleaned_data ..
아나콘다 설치 (with aws)
@@@ 2020/3/15 @@@ 2020 05/06 7월꺼 안됨.. 최신걸로 하세용 @@@ 2020 07/20 aws 에 아나콘다 설치도중 payload 가 0에서 올라가지않았다 . 그래서 10월 꺼대신 7월 버전을 받아서 해결했다 . wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh bash Anaconda3-2019.10-Linux-x86_64.sh wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh bash Anaconda + tab source ~/.bashrc //설정적용 @@@@@@@@@@ 머신러닝 환경이아닌 가상환경일 경우 Minico..
[Python] *args, **kwargs 란?
args(=arguments), kwargs(=keyword arguments) 어떤 값을 넣을지는 모르는데 *args는 값을 넣으면 함수에 변수가 튜플로 입력, **kwargs 는 딕셔너리 형태로 입력됨 args는 정해지지 않은 수의 (일반)파라미터를 받는다. ex) 여기서 주의점은 *args 는 일반 변수보다 반드시 뒤에있어야한다!! 오류남 blog(*args , name) 하면안대여 kwargs는 정해지지 않은 수의 키워드파라미터를 받는다. 결론 위에서 사용했던 args와 kwags는 다른 변수명으로 바꿀 수 있다. 그러나 가독성을 위해 args(=arguments), kwargs(=keyword arguments)를 위해 그대로 사용하는 것을 권장한다. *변수 = 해당변수를 튜플로 처리한다. ..
[Django] Nginx- Gunicorn 삽질
ubuntu Nginx-Gunicorn-Django 구동 확인 후 .. 백앤드(admin) 개발도중 문제가 두가지 발생했다. 1. Django에서 코드를 바꾸면 바로 admin에 반영이 안된다. (runserver 로 돌리면 바로 반영되어있음) 2. 반영이 되고 나서 웹상에서 새로고침을 누르면 오류 , 정상 이 반복된다. Nginx가 문제라고 생각해서 껏다 켜봐도 안되고 Django쪽도 일부러 설정도 건드려봐도 안됬다. 설마하니 Gunicorn 문제일까 싶어서 껏다 키니까 오류가 해결됨 .. 구글링해서 한블로그를 참고 했더니 Django 내부 파일을 수정했을경우 , Gunicorn을 재시작해야한다고 한다..... 재시작방법은 sudo systemctl daemon-reload sudo service gu..
[Django] Django-Admin css 적용안되는문제 (정적파일이해)
@@@@@@@@@@@@@@@@@ 작성 2020 6/3 수정 2020 7/16 @@@@@@@@@@@@@@@@@ Django - gunicorn - nginx 연결후 admin 접속했는데 ?????? 뭐야이게 runserver 해서 들어갈떄와 다른점은 오직 nginx를 연결한거밖에 없는데.. 그냥할려다가 그래도 장고의 최대장점중 하나인 Admin을 이렇게 쓸수는 없었다. 구글링 결과 개발환경에서만 특별히~ 자동으로 연결해준거라고한다. 원래 정적파일이 연결되어있는데 개발환경에서는 자동으로 연결해주고 웹서버를 붙이면 안됨 ㅇㅇ 여기서 정적파일(static file) 이란? - 웹사이트 구성요소중 Image, Css , Script 파일과 같이 그내용이 고정되어 응답을 할때 별도의 처리 없이 파일내용을 그대로 보..
[Python]
@@@@ List 는 변경이 가능하다 [] # in - 리스트 해당 값 유무 판별(True/False) days = ["Mon", "Tue", "Wed", "Thu", "Fri"] print("Mon" in days) == True # len - 리스트 갯수 판별 days = ["Mon", "Tue", "Wed", "Thu", "Fri"] print(len dayts) == 5 # append - 리스트에 값추가 days = ["Mon", "Tue", "Wed", "Thu", "Fri"] days.append("Sat") print(days) == ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] # revserse - 역방향 출력 # remove - 삭제 days.remove..
Nginx + Gunicorn + Django 서버구축
@@@@@@@@@@@@@@@ 2020 5/15 작성 2020 7/16 수정 @@@@@@@@@@@@@@@ Aws ec2 그리고 가상환경은 Anaconda or Miniconda 로 했다는 가정하에 진행한다. https://invalueable.tistory.com/71?category=752115 아나콘다 설치 (with aws) aws 에 아나콘다 설치도중 payload 가 0에서 올라가지않았다 . 그래서 10월 꺼대신 7월 버전을 받아서 해결했다 . @@@ 2020 05/06 7월꺼 안됨.. 최신걸로 하세용 wget https://repo.anaconda.com/archive/Anaconda.. invalueable.tistory.com 이블로그를 참조했습니다. https://soyoung-new-ch..