본문 바로가기

Python

(11)
Django, uWSGI, NGINX 헷갈리는 거 정리, 꿀팁, Cheating Sheets Django와 S3 Storage 연동하기 https://nachwon.github.io/django-deploy-7-s3/
[Django] Django에서 static 과 media 이용하기. DEBUG=False일 때 static 문제점 Django를 막 입문한 뒤 프로젝트를 배포하려고 settings.py에서 DEBUG=False로 바꾸는 순간 경악을 금치못할 수 있다. DEBUG=False로 바꾸는 순간 runserver로 서버를 돌릴 시 static file, media file들이 제공이 안 됐을 것이다. 웹서버와 uWSGI와 Django를 연동할 때에도 마찬가지이다. 그래서 static file과 media file은 웹서버에서 전송해주는 것이 바람직하지만 너무도 귀찮고 경우가 여러가지라 복잡하다. 그래서 정리해본다. 문제의 원인은? 기본적으로 Django의 runserver 기능은 개발 과정에서 편리하도록 임시적으로 웹서버 기능을 하기 위한 것이라고 하고 만약 배포하는 과정이라면 DEBUG=False 로 두는 것이 바람..
docker-compose를 통해 Nginx, Django 연동하기 2 - Django App과 uWSGI 연동하기 Intro 저번 1편에서는 docker-compose를 이용해 Nginx, uWSGI, Django를 연결하기에 앞서 "Hello, ~~~" 을 출력해주는 간단한 Django앱을 만들었습니다. 사실 uWSGI나 Docker 관련한 글을 보러 오신 분들은 다들 아시는 내용이겠죠. 이번엔 uWSGI, WSGI 가 각각 뭔지 알아보고 사용해볼게요. WSGI 많~~~은 블로그에서 uWSGI와 WSGI를 설명하고도 있고, 똑~같이 설명하고도 있기때문에, 자세히는 다루지 않겠습니다. 쉽게 말해서 WSGI는 Web Server Gateway Interface라는 것인데 자바를 공부해보신분들은 아시겠죠? 인터페이스는 허상(?)일 뿐 실체가 아니잖아요. 그 WSGI 인터페이스를 구현한 구현체 중 하나가 uWSGI입니다...
Django App Templates Directory. 장고 앱 템플릿 디렉토리 구조에 대해 Django App 의 Template 구조가 어떤 식으로 작용하는가? 이런 식으로 할 꺼면 그냥 app/templates/index.html로 하면 안 되는 건가? Intro 아마 Django를 처음 시작하는 사람들은 대부분 Django 의 Official Site에 있는 Tutorial. polls app 만들기를 접해보았을 것이다. 거기 예제를 따라가다보면 template 관련한 내용이 나오는데 주로 template directory structure를 아래와 같은 식으로 쌓는다. 근데 나는 처음에 Django 를 시작할 때부터 궁금했다. 예를 들어 app 이름이 tutorial 이면 왜 tutorial/templates/tutorial/index.html처럼 앱의 이름이 2번 등장해야하는가 말이다..
Django 테이블 삭제하는 방법. django.db.utils.OperationalError: no such table 오류 해결 방법 Intro Django 로 개발을 하면서 자주 TABLE( 혹은 Model, 섞어서 표현하겠음. )을 삭제할 때 Migration 에 대한 개념이 별로 없어서인지 django.db.utils.OperationalError: no such table 에러를 자주 만나게되었습니다. 이번에도 한 번 그런 에러가 발생해서 이번 기회에 한 번 정확한 해결방법 및 Django 에서 Model을 삭제하는 방법에 대해 정리해보려합니다. 요점 중요한 점은 django ORM (Database를 직접 다루는 게 아니라 Django에서 api를 통해 다루는 방식 ) 에서 python manage.py makemigrtions 는 DB에 migrate할 변동내역을 적어놓기만하는 것이고 실제 DB에 그 내용이 반영되는 것은 p..
docker-compose를 통해 Nginx, Django 연동하기 1 - 간단한 Django app 만들기 소개docker-compose 를 통해 Nginx, uWSGI, Django 를 이용한 웹 서버, 웹 애플리케이션을 구축해보는 아주아주 씸플한 Super simple application을 만들어보겠다.이번 주말 내내 이 작업을 엄청 했더니 어느정도 쉬운 구조에서는 도가 트였다. 이러한 도커 애플리케이션을 만들 것이다.그냥 IP:Port에 접속했을 때 인사를 해주는 간단한 Django Application을 웹서버에 올려보자. 프로젝트 구조는 위와 같다. 이번 시간엔 django 디렉토리까지만 다루겠다. 작업 내용 프로젝트 구조에 맞게 디렉토리와 virtual environment를 설정해준다. django-admin command를 이용해서 django project와 그 속의 app을 생성해준다. 이..
웹서버를 짜주는 Django 에서 프로젝트를 구성하는 방식 Intro 방학을 맞이해서 우선은 Django 및 DB 공부를 시작하게되었는데, 일주일에 한 번 정도는 배웠던 내용을 정리하고자 블로그에 포스트를 쓰려한다. 지금도 검색 한 번이면 중복되는 내용이 수두룩하게 나올만한 너무 흔한 내용은 이제 블로그에 적으나 마나이니까, 내가 궁금했던 것 바탕으로 알아본 내용 중 주로 세부적인 부분을 다뤄보려한다. 아무래도 첫 번째 글이다 보니, Django에 대한 전체적인 내용을 다루려하는데, 개인적으로 내가 당황했던 Django의 Project Structure에 대해 다뤄보려 한다. Django 가 무엇이지? 간단히 말하자면 Web Server나 Web Application을 편리하게 짤 수 있도록 도와주는 Python Framework이다. 생각보다 Wikipedia..
python에서 리스트 복사 및 같은 주소 참조 list1=[1,2,3,4,5] # list2는 list1이 가리키는 list와 동일한 주소 list2=list1 # 아래 두 줄은 동일한 id를 출력함 print("list1 id :", id(list1)) print("list2 id :", id(list2)) ################################# # list2는 list1을 바탕으로 slicing을 통해 복사된 # list1과 똑같이 생겼지만, 또다른 list인 녀석을 # 가리킨다. list2=list1[:] # 아래 두 줄은 다른 id를 출력함 # 지금의 list1과 위에서의 list1은? - 동일 print("list1 id :", id(list1)) print("list2 id :", id(list2)) # 마찬가지로 l..