Python: 127개의 글
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/dzlW90/btq3I6b72f6/sCMkApBi5T7HIHseQPIbX0/img.png)
첫 번째 장고 앱 작성하기, part 6 서버에서 생성된 HTML을 제외하고, 웹 어플리케이션은 일반적으로 전체 웹 페이지를 렌더링하는데 필요한 추가 파일을 정적파일이라고 부른다. 이미지, javascript, CSS 소규모 프로젝트에서는 웹서버가 정적파일을 보관할 수 있기 때문에 큰 문제가 아니지만, 큰 프로젝트에서 제공하는 여러 정적파일 세트를 다루는 것이 까다로워지기 시작 django.contrib.staticfiles: 정적 파일들을 프로덕션 환경에서 쉽게 제공 할 수 있는 단일 위치로 수집 CSS를 적용: 앱의 모양과 느낌을 원하는대로 변경 먼저 polls 디렉토리에 static디렉토리를 생성한다. django는 templates와 비슷하게 정적 파일을 찾는다. polls/static/polls..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/c5IfiV/btq3IwI1qJH/e6tk4MkPE6qtfXFnJyDj8k/img.png)
첫 번째 장고 앱작성하기, part 5 애플리케이션을 구축했으면 자동화 테스트를 작성 테스트가 필요한 이유 특정 모델 메소드에서 예상된 값을 반환하는지 사이트에서 사용자의 입력 시퀀스가 원하는 결과를 생성하는지 등등.. 버그 테스트 케이스 만들기 polls/tests.py import datetime from django.utils import timezone from django.test import TestCase from .models import Question class QuestionModelTests(TestCase): def test_was_published_recently_with_future_question(self): """ was_published_recently() returns ..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/LRyUc/btq3KdaKIgo/j5Bl66Yef0u7qbvsujI8a0/img.png)
첫번째 장고 앱 작성하기, part 4 간단한 폼 만들기 polls/detail.html을 변경해보면 {{ question.question_text }} {% if error_message %}{{ error_message }}{% endif %} {% csrf_token %} {% for choice in question.choice_set.all %} {{ choice.choice_text }} {% endfor %} polls/urls.py path('/vote/', views.vote, name='vote'), polls/views.py from django.shortcuts import get_object_or_404, render from django.http import HttpRespons..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/cxYhd7/btq3FdXtkOF/geoi764r2YAKKaJYozaoU1/img.png)
첫번째 장고 앱 작성하기, Part3 view를 추가 질문 "색인" 페이지 - 최근의 질문들을 표시 질문 "세부" 페이지 - 질문 내용과, 투표할 수 있는 서식을 표시 질문 "결과" 페이지 - 특정 질문에 대한 결과 투표 기능 -- 특정 질문에 대해 특정 선택을 할 수 잇는 투표 기능 View 작성하기 view 코드 작성 # polls/views.py def detail(request, question_id): return HttpResponse("You're looking at question %s." % question_id) def results(request, question_id): response = "You're looking at the results of question %s." retu..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/bfHTar/btq3KeHuOCj/9XgvnghszbpVIJI6nQHTi0/img.png)
첫번째 장고 앱 장성하기, part2 데이터 베이스 설치 mysite/settings.py 기본적으로 SQLite(Python에서 기본 제공)를 사용하도록 구성되어 있다. ENGINE - 'django.db.backends.sqlite3', 'django.db.backends.postgresql', 'django.db.backends.mysql', or 'django.db.backends.oracle' NAME - 뭐 맘대로 설정 SQLite 를 데이터베이스로 사용하지 않는 경우, USER, PASSWORD, HOST 같은 추가 설정이 반드시 필요합니다. 더 자세한 내용은 DATABASES 문서를 참조해 주세요. database 설치 테스트하기 https://docs.djangoproject.com/ko..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/B2L6w/btq3Fe27hUo/aGXUaAEo5OT5fgufK6KFIK/img.png)
첫 번째 장고 앱 작성하기, part 1 간단한 설문조사(Polls) 어플리케이션을 만드는 과정을 따라해보면 요구사항 사람들이 설문 내용을 보고 직접 투표할 수 있는 개방된 사이트 관리자가 설문을 추가, 변경, 삭제할 수 있는 관리용 사이트 $ python -m django --version django 프로젝트 만들기 $ django-admin startproject mysite startproject를 수행하면 아래와 같은 파일이 생성된다. mysite/ 그냥 프로젝트를 담는 폴더 manage.py 커맨드 유틸리티 mysite/init.py mystie/settings.py project의 환경/구성 mysite/urls.py 사이트의 목차 mysite/wsgi.py 현재 프로젝트를 서비스하기 위한 ..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/1voTy/btq3I6JUrvw/uq9vMYMfONNSJzXxPjpKLk/img.png)
Django 시작 일단 파이썬이 데이터 핸들링에 쉽기 때문에 그냥 django를 선택했음. maven build 이런거 하기 싫음... 자바 특히 ㅠㅠ 그게 너무 싫음 Reference 문서 https://docs.djangoproject.com/ko/2.0/ Django 설치 https://docs.djangoproject.com/ko/2.0/topics/install/ 일단 기본적으로 EC2에는 python3가 설치되어 있기 때문에 아래 추가를 하자 ~/.bashrc $ alias python='python3' pre-installation https://virtualenvwrapper.readthedocs.io/en/latest/ - (선택) https://pip.pypa.io/en/stable/i..
파이썬에서 데이터를 읽을때, 보통은 모든 데이터를 메모리에 올리고 사용하는 경우가 많다. 하지만, 작은 사이즈의 데이터는 가능하지만 큰 사이즈의 데이터를 메모리에 올리고 사용하는게 가능하다면? 피시에 감사하자. 큰 데이터셋을 사용하는 경우인 데이터 학습 시킬 학습 데이터, 통계를 낼때 데이터 등등.. 이때는 데이터를 built-in 함수인 iterator, generator를 이용을 해야만 한다. MUST!! Iterator, Generator 자 interation을 어떻게 쓰는게 좋은가? python for x in range(10): print x range(10)은 리스트를 생성하는것과 동일하다. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] list를 iteration object로 생..
쥬피터(Jupyter) Notebook에서 Slack 메시지를 보내는 방법 데이터 분석일을 하다보니 작업을 돌려놓고, 다른 업무를 보는 일이 많다. 여러개를 병렬적으로 돌려야 하다보니, 언제 어떤 작업이 완료했는지 알람을 받는게 필요했다. 일단 단계는 4단계로 크게 나누어 봤다. sendlogto_slack 의 python 코드 작성 sendlogto_slack을 bashrc에 alias로 지정 ipython에서 alias를 추가하는 부분 코드 작성 및 startup 스크립트 작성 ipython에서 alias로 메시지보내기 사용 sendlogto_slack 파이썬 코드 작성하기 # -*- encoding: utf8 -*- def send_log_to_slack(text): channel = '' impo..
파이썬에서 pickle을 이용해 dictionary를 저장하고 로드하는 방법 중간 결과를 저장하거나, 최정 결과를 저장하기 위해 dictionary의 객체를 그대로 로컬의 디스크로 저장하는 방법은 자주 필요하다. key, map을 만드는 경우에도 중간 데이터를 생성해 놓은 뒤에, 이미 데이터가 있는 경우에는 로드해서 바로 사용하면 효율적이다. 코드 pickle을 이용해 데이터의 사이즈를 줄이고, 기존 textfile로 저장, 로드의 시간 소요가 절약된다. import pickle a = {'hello': 'world'} with open('filename.pickle', 'wb') as handle: pickle.dump(a, handle, protocol=pickle.HIGHEST_PROTOCOL) w..