본문 바로가기

전체 글

(145)
[Django] 장고 settings.py 시크릿키 등 중요정보 ini파일로 관리하기 깃헙 같은 곳에 프로젝트를 올릴 때 중요한 정보들은 올리지 않고 따로 관리해 주어야 한다. 여러 방법 중 하나인 ini 파일을 생성해서 중요 정보를 저장하고, 불러와서 사용하는 방법에 대해 배워보자. 파이썬 표준 라이브러리에 ini 파일 읽는 패키지가 있다. import configparser 우선 ini 파일을 하나 만들어 보자. settings의 secret key는 노출되면 안되기 때문에 이 정보를 ini파일에 다음과 같이 저장한다. ini 파일은 프로젝트 폴더에 저장한다. (manage.py가 저장되어 있는 폴더) [SETTING] SECRET_KEY = 당신의비밀키 이제 settings.py로 돌아가서 ini파일에 저장해둔 secret key를 가져오자. import configparser im..
(작성중) 장고 배포 하기 (gunicorn, Nginx) 우리가 그동안 장고를 실행할 때 python manage.py runserver 를 입력하여 개발 하는 도중 서버를 실행하여 각종 테스트를 해봤다. 하지만 장고의 내장서버를 이용하여 실제로 운영하는데에는 많은 한계가 있다. 내장 서버는 오직 개발 테스트 용으로만 써야 한다. Now’s a good time to note: don’t use this server in anything resembling a production environment. It’s intended only for use while developing. 장고 튜토리얼에 게시되어 있는 글이다. 이것을 실제 배포용 서버로 사용하지 마라. 오로지 개발을 위해 사용하라. 라고 되어 있다. 자 그럼 이제 실제로 배포를 하기위해 필요한 것들을..
(작성중) 장고 mysql python에서 mysql과 통신하기 위한 패키지 설치 pip install mysqlclient settings.py 수정 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': str(BASE_DIR / 'db.mysql'), 'USER': 'dhdgn', 'PASSWORD': '12341234', 'HOST': 'localhost', 'PORT': '3306', } }
[Django] 장고 기본 사용법 앱 생성 python manage.py startapp photo settings.py의 INSTALLED_APPS에 photo 추가. 작성 순서는 본인이 편한대로 하면 된다. 필자는 다음과 같은 순서로 작성해보겠다. 1. model 2. views 3. template 4. urls photo/models.py from django.db import models class Photo(models.Model): title = models.CharField(max_length=50) author = models.CharField(max_length=50) image = models.CharField(max_length=200) description = models.TextField() price = mod..
다리를 지나는 트럭 C++ (프로그래머스 스택/큐) 문제 설명 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 경과 시간 다리를 지난 트럭 다리를 건너는 트럭 대기 트럭 0 [] [] [7,4,5,6] 1~2 [] [7] [4,5,6] 3 [7] [4] [5,6] 4 [7] [4,5..
[Django] 장고 HTML URL 경로 설정하는 방법 Django를 이용해 웹 사이트를 제작하면 여러 페이지가 나오게 된다. 이때 다른 페이지로 가기 위해 HTML 문서에서는 많은 하이퍼 링크를 만들게 되는데, 간단하게 절대경로를 만들어 넣을 수 있다. gogo 물론! 이렇게 해도 되지만, 우리는 웹을 제작하면서 경로 이름을 바꾸는 경우가 종종 있다. 이 때 하나의 경로 이름을 바꾸게 된다면 이 경로에 하이퍼링크를 걸고 있는 모든 HTML 문서를 수정해줘야 하는 불편함이 발생한다. 이런 문서들을 찾기도 힘들고.. 시간도 많이 버리게 된다. 이런 문제를 해결하기 위해 등장한 것이 바로 url 탬플릿 태그 이다! urls.py에 다음과 같이 경로를 줄때 옵션으로 이름공간을 정해 줄 수 있다. from django.urls import path from . im..
(작성중) 장고 JWT 이용하여 회원가입, 로그인 기능 구현 (Django JWT Token) JWT(JSON Web Token)란? http 프로토콜을 통해 사용자는 웹사이트를 이용한다. 그런데 이 http 프로토콜의 특징 중 하나가 바로 stateless, 즉 상태 유지를 하지 않는다는 것이다. 이렇게 되면 사용자는 매번 사이트의 다른 페이지에 접근할 때마다 로그인을 해주어야 하는데 등의 큰 불편함이 있다. 예를 들어 네이버에서 로그인을 하고 블로그 페이지를 누르면 로그아웃이 되어 다시 로그인을 해주어야 하는 등의 문제가 발생한다. 이와 같은 문제들을 해결하기 위해 세션, 쿠키, 토큰 등의 기능을 이용하는 것이다. 관련한 자세한 내용은 다음 포스팅을 참조하길 바란다. https://hooeverything.tistory.com/12 여러 가지 방법 중 관리가 편하고, 서버 측 자원이 많이 소모..
쿠키, 세션, 토큰, JWT (Cookie, Session, Token, JWT) 쿠키란? 쿠키는 사용자가 방문한 웹사이트에서 사용자의 브라우저에 전송하는 작은 텍스트 조각(기록 정보 파일)이다. 사용자의 방문에 관한 정보를 저장하여, 나중에 사이트에 방문 했을때 재작업을 피하고, 사이트를 유용하게 관리할 수 있다. 쿠키는 사용자의 PC에(브라우저) 저장된다. 이렇게 저장된 쿠키는 해당하는 사이트에 접속할때마다 자동으로 서버에게 보내진다. 쿠키는 임의 수정과 다른 사람이 훔쳐가기쉽다. 그렇기 때문에 중요한 정보들은 세션을 통해 서버에서 관리하고 덜 중요한 정보들을 저장한다. 쿠키라는 용어는 루 몬툴리가 만들어 냈다. 매직 쿠키 라는 용어에서 비롯되었다. 세션이란? 클라이언트와 웹 서버간에 연결된 상태를 뜻한다. 세션은 서버에 클라이언트의 정보를 저장한다. 1. 사용자가 웹사이트에 접속..