목록Python (38)
규도자 개발 블로그
django settings.py의 ALLOWED_HOSTS와 상용환경에서의 테스트 DEBUG가 True일 땐 ALLOWED_HOSTS에 자동으로 ['localhost', '127.0.0.1', '[::1]']가 적용되어 내가 돌려보고 내컴퓨터에서 들어가는 것이므로 윈도우나 맥 등에서의 개발환경에서는 사이트의 작동을 확인할 수 있지만 서버환경, 그러니까 외부에 노출된 IP가 있는 환경에서는 이렇게 돌려볼 순 있어도 서버 자체에서 브라우저를 설치해 들어가보지 않는 이상 확인해볼 방법이 없다. 그럼에도 불구하고 python manage.py runserver명령어를 통해 외부 브라우저에서 확인할 수 있는 방법이 있는데 뒤에 0.0.0.0:80이라는 주소와 포트번호를 붙이면 된다. 만들어진 명령어는 pytho..
django project에 contribute할 내용 (url dispatcher에 대한 건) 예전에 관련 작업을 할 때마다 아 이건 django 프로젝트 커뮤니티에 제보를 하던가 혹은 내가 직접 contributor가 돼서 개선 혹은 변경을 해야겠다고 생각한 부분이다. 약 반년 전쯤에도 작업을 하다가 떠올랐던 부분인데 뭔지 까먹어서 잊었던 부분이고 최근에 또 작업하다가 big aha moment를 만나서 다시는 까먹지 않게 여기에나마 기록해두려 한다. 직접적인 개선 방법 및 커뮤니티에 기여자로 참여하는 방법들을 모르니 일단 여기에 기록해둔 뒤에 직접 기고할 계획으로 말이다. 이 생각이 든 건 form을 제공하는 페이지에서 데이터를 수정하고 저장할 때 url을 지정하는 부분을 작업할 때였다. 어떤 fo..
Django Template에서 List사용하기 Django는 JSP나 PHP와는 다르게 Template(html과 로직이 섞여있는 곳) 내에서 자료형을 선언하거나, 백단에서 쓰던 언어를 그대로 쓰는 등의 행위가 굉장히 제한적이다. 그런 데에 있어서 편의성은 PHP가 넘사벽이지만 JSP도 자바로직과 자료형을 그대로 쓸 수 있다는 장점이 있다. 하지만 Django는 그런 면에서는 굉장히 불편하다. 물론 필요한 자료형을 애초에 get request요청시에 context에 담아서 가져올 수 있지만 굳이 그럴 필요가 없이 한 군데에서만 임시적으로 써야하는 자료형이라면? 그때부턴 귀찮음이 몸을 지배하기 시작한다. 예를 들어 파이썬에서 흔하게 쓰는 List를 템플릿에서 쓰고자 한다면 {% with list = [1..
파이썬3.x[python3.x]에서 요소가 하나인 튜플을 문자열이 아닌 튜플로 인식시키기 i_wanna_be_tuple = ('really') print(i_wanna_be_tuple) print(type(i_wanna_be_tuple)) u_need_to_do_like_this = ('like this',) print(u_need_to_do_like_this) print(type(u_need_to_do_like_this)) 어제 부딪힌 문제였다. django로 작업을 하던 와중 django form을 이용해 입력란을 만들고 있었는데 modelform은 상속받은 model을 기반으로 해서 입력 form을 작성해준다. 하필 입력받을 form 요소가 딱 하나였는데 이를 tuple형태로 정의해야하는 지라 단순..
파이썬(Python) 내장함수의 시간복잡도 나는 내장함수는 뭔가 당연히 최적화돼있겠거니 하고 생각없이 쓰곤 한다. 하지만 그런 자세가 프로그램의 효율에 커다란 영향을 끼치지 않나 싶다. 특히 이번에 에라토스테네스의 체를 응용한 문제를 풀고 있는데 정확한 개념을 알기 위해 위키에 쳐보니 다음과 같은 함수가 나왔다. def prime_list(n): # 에라토스테네스의 체 초기화: n개 요소에 True 설정(소수로 간주) sieve = [True] * n # n의 최대 약수가 sqrt(n) 이하이므로 i=sqrt(n)까지 검사 m = int(n ** 0.5) for i in range(2, m + 1): if sieve[i] == True: # i가 소수인 경우 for j in range(i+i, n, i)..
간단한 react JS + Django 어플리케이션 만들기 일단 프로젝트를 시작하기 전에 서론이 길다. react와 django가 동작하는 방식에 대해선 관심 없고 단지 어떻게 만드는 지에 대해서만 관심있는 사람이라면 이 텍스트블록들은 과감하게 넘겨도 좋다. 하지만 제대로 만들기 위해선 react와 django를 이용한 웹어플리케이션이 어떻게 작동하는지에 대해서 간단하게나마 알아둘 필요가 있다. 그럼 시작하겠다. react는 Single Page Application을 위해 만들어진 Javascript라이브러리이다. 페이스북에서 만들었는데 딱 페이스북이 어떻게 동작하는지 보면 이 용도를 이해할 수 있다. 페이스북에서 좋아요를 누르고 댓글을 달고 페메를 보내는 건 전부 한 페이지에서 이뤄진다. 넷플릭스 또..
윈도우(windows)에서 파이썬(python) 2.x버전과 3.x버전 동시에 쓰기 나는 파이썬을 시작한지 얼마 되지 않아서 3.x버전만 다뤄왔었다. 하지만 리눅스 환경에서 기본값으로 깔려 있는 파이썬은 대체로 2.x버전이었다. 리눅스환경에서야 symlink로 각 명령어에 대한 구분이 가능하지만 윈도우같은 경우에 파이썬3버전과 2버전을 동시에 깔면 무조건 python이라는 명령어에 python 2.x대가 붙는 현상이 있다. 나의 경우에는 python3.x로 작업을 하다가 node.js를 깔면서 위의 현상을 겪었는데 node.js의 npm이 python2.7을 사용하고 있기 때문이다. node.js를 깔기 전에 콘솔 창에 python -V를 치면 3.7.x가 떴는데 이제는 2.7.15가 뜬다. 환경변수 설..
CentOS로 Python3.x쓰기 및 yum에러 해결 CentOS에 기본적으로 설치돼있는 파이썬의 버전은 2.x대이다. 하지만 파이썬은 2버전과 3버전으로 나뉘어져있는 데다가 2버전은 곧 지원이 끊긴다. 심지어 아주 기본적인 문법에서부터 차이가 있어서 2.x에서 작성된 소스를 3.x으로 돌리면 제대로 돌아가지 않는 경우가 왕왕 있다. 하지만 파이썬 3.x가 필요하다면 어떻게든 설치해서 사용해야 한다. 굳이 CentOS뿐만 아니라 Fedora, Redhat계열 리눅스에서 통용되는 방법이다. ius Repository를 yum에 추가한다. $ yum install -y https://centos7.iuscommunity.org/ius-release.rpm python3로 시작하는 라이브러리들을 확인한다. ..