분류 전체보기
파이썬, 장고, 그리고 오라클 데이터베이스 연결하기 (1)
2015. 8. 23.Using the Django Framework with Python and Oracle Database (1) 본 게시물에서는 파이썬, 장고, 오라클을 이용하여 기존 오라클 데이터베이스의 자료를 조회할 수 있는 페이지를 만들어보고자 한다. http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/oow10/python_django/python_django.htm 파이썬을 만든 Guido van Rossum at PyCon 2013 [1단계] 1. 앞서 밝혔듯이 본 게시물의 작성 목표는 기존에 설치된 Oracle Database 에 연결하여 데이터 조회를 위한 페이지를 만드는 것이다. 2. 본격적인 작업에 앞서 연결할 데이터베이스의 username, p..
구글스프레드시트를 이용한 트위터 봇 만들기 (3) - “Select from Rows” and “Select from Columns” Setup
2015. 8. 19.Select from Rows 와 Select from Columns 는 기본적으로 똑같은 방식이고 다만 그 방향만 다르게 작용할 뿐이다. 먼저 Select from Rows 의 경우에는 각 행에서 하나씩의 셀을 선택, 조합해서 트윗을 생성해낸다. 그리고 미리 생성해둔 메시지로 랜덤하게 포스팅하는 봇을 만들려면, 바로 이 "Select from Rows"를 활용하면 되는데, 작성해둔 메시지들을 개별 컬럼에 붙여넣으면 된다. 해당 행이나 열 주위로 노트나 라벨을 삽입해도 좋다.
구글스프레드시트를 이용한 트위터 봇 만들기 (2) - "Markov" Setup
2015. 8. 17.시작하기 위에서 보는 바와 같이 4개의 데이터시트 중에 선택이 가능하다. 그 4개의 데이터시트는 각각의 특징이 있으며, 다른 내용으로 변경도 가능하다. 여기서는 먼저 Markov 시트의 적용에 대해 살펴본다. "Markov" Setup Markov 데이터시트의 경우 위와 같은 형태를 갖추고 있다. 데이터 입력 시트는 B5 와 그 이하의 셀을 스캔해서 트윗을 생성해낸다. 이 셀에 다른 텍스트를 대체해서 넣을 수도 있다. 이 형태는 다른 알고리즘보다는 트윗 생성에 좀 더 시간이 소요된다. 새로운 텍스트를 B5 셀 이하에 붙여넣는다. [Bot] - [Stop Posting Tweets] 을 통해 기존의 트윗 생성을 중단한 후 [Bot] - [Generate Preview] 를 통해서 트윗 데이터가 제대로 출력..
구글스프레드시트를 이용한 트위터 봇 만들기 (1)
2015. 8. 17.구글스프레드시트를 이용하여 주기적으로 트윗을 전송하는 봇을 만들어보자. 먼저 https://docs.google.com/spreadsheets/d/1Cbg_6pYN04XtDHpDLtxAP3ExQEBL8PYBXBQ1E5_Sq30/copy에서 스프레드시트를 복사한 후에 시작! Step 1: Create a Twitter account for your Bot먼저 봇으로 사용할 새로운 트위터 계정을 만듭니다. Step 2: Create a Twitter App for your Bot스프레드시트가 트위터와 소통할 트위터 앱을 만듭니다. http://apps.twitter.com 로 이동하여 "Create New App" 버튼을 이용해 트위터 앱을 만든다. name, description, website 항목을 필..
[django] More comprehensive tests
2015. 7. 28.More comprehensive tests 아래와 같이 2개의 메서드 추가해서 테스트 실시 polls/tests.pyimport datetime from django.utils import timezonefrom django.test import TestCase from .models import Question class QuestionMethodTests(TestCase): def test_was_published_recently_with_old_question(self): time = timezone.now() + datetime.timedelta(days=30) old_question = Question(pub_date=time) self.assertEqual(old_question.was_pu..
[django] Writing our first test
2015. 7. 25.We identify a bug Question.was_published_recently() 모듈은 설문 생성일이 도래하지 않은 미래인 경우에도 T 값을 반환하고 있다. Admin 페이지에서 설문생성일이 미래임에도 최근에 생성된 질문에 체크되어 있음을 아래와 같이 확인할 수 있다. 셀을 통해서도 위의 내용은 확인가능하다. >>> import datetime >>> from django.utils import timezone >>> from polls.models import Question >>> # create a Question instance with pub_date 30 days in the future >>> future_question = Question(pub_date=timezone.now..
AICPA 시험일정 변경에 따른 추가비용 (Rescheduling/Cancellation Fees)
2015. 7. 20.시험장 예약일시 및 장소 변경 시험장 예약일시 및 장소 변경은 다음과 2가지 방법으로 가능합니다. 1. 프로메트릭 사이트 웹에서 진행하거나 또는 2. 프로메트릭 콜센터에서 진행 다만, 변경일에 따라 변경수수료가 발생할 수 있으니 아래 도표를 참조하시기 바랍니다. Rescheduling/Cancellation Fees 변경일 예약변경 수수료 예시 예약일로부터 30일 이전 $0.00 BEC를 8/18(수) 오전 8시에 보기로 예정이 되어있었는데, 7/16(금) 해당일 응시가 어려울 것으로 판단되어 변경을 하고자하는경우로, 이 경우에는 시험예정일로부터 33일전에 변경을하는 것이므로 리스케줄에 대한 비용을 추가 부담할 것은 없습니다. 8/18(수) 이전이나 이후로 일정 변경이 가능하지만, 일단은 NTS에 기재된..
[django] Use generic views: Less code is better
2015. 7. 18.제너릭 뷰 시스템을 사용할 수 있도록 poll 앱을 수정해보자. 그러면 상당량의 코드를 지울 수 있다. 1. URLconf 변환2. 오래되고 불필요한 뷰 삭제3. 장고의 제네릭 뷰에 입각한 새로운 뷰 도입 Amend URLconf /root/mysite/polls/urls.pyfrom django.conf.urls import url from . import views urlpatterns = [ url(r'^$', views.IndexView.as_view(), name='index'), url(r'^(?P[0-9]+)/$', views.DetailView.as_view(), name = 'detail' ), url(r'^(?P[0-9]+)/results/$$', views.ResultsView.as_..
[django] Write a simple form
2015. 7. 18.HTML 을 포함할 수 있도록 설문 상세 템플릿을 수정해보자. /root/mysite/polls/templates/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 %} - 위의 템플릿에서는 각각의 답변에 대해 라디오 버튼을 적용했다. 각각의 라디오 버튼은 설문 보기 ID와 연관되어 있다. 각각의 라디오 버튼의 이름은 "choice"로, 이것은 어떤 사람이 라디오 버튼 중 하나를 선택했고, 그 폼을 전송한다, 그러면 c..
[django] Namespacing URL names
2015. 7. 18.Namespacing URL names 현재 예제에서는 하나의 앱만 다루고 있지만, 실제 프로젝트에서 앱의 수는 20개 그 이상일 수도 있다. 그러면 장고는 그러한 URL 네임들을 어떻게 차별화시키는 것일까?예를 들어, poll 앱의 경우 상세 뷰를 가지고 있고, 동일한 프로젝트에 블로그를 위한 앱을 가지고 있다고 하자. {% url %} 템플릿 태그를 사용할 때 어떤 앱의 뷰를 생성해야하는지 알 수 있을까? 그 해답은 현재의 root URLconf 에 네임스페이스를 추가하는 것이다. mysite/urls.py 에 네임스페이스를 포함하도록 변경해보자. /root/mysite/mysite/urls.py from django.conf.urls import include, urlfrom django.contr..
[django] Use the template system
2015. 7. 18.detail() 뷰로 다시 돌아가보자. polls/templates/polls/detail.html{{ question.question_text }}{% for choice in question.choice_set.all %} {{ choice.choice_text }}{% endfor %} 템플릿 시스템은 변수의 속성에 접근하기 위해 dot-lookup 구문을 사용한다. 위의 예에서 장고Django 는 우선 오브젝트 질문에 대해 dictionary lookup 을 수행한다. 그리고 그것이 실패하는 경우에 attribute lookup을 수행한다. attribute lookup 이 실패하면 list-index lookup 을 수행한다. {% for %} 루프에서 메서드 호출이 일어난다. question...
[django] Raising a 404 error
2015. 7. 18.설문에 대한 상세 내용을 보여주는 페이지를 다시 한 번 봅시다. polls/views.pyfrom django.shortcuts import renderfrom django.http import HttpResponse, Http404from django.template import RequestContext, loaderfrom .models import Question def index(request): latest_question_list = Question.objects.order_by('-pub_date')[:5] context = {'latest_question_list': latest_question_list} return render(request, 'polls/index.html', con..
[django] Write views that actually do something
2015. 7. 17.각각의 뷰는 다음의 2가지 기능을 수행한다. 하나는 요청한 페이지의 컨텐츠를 담고 있는 HttpResponse 객체트를 반환하는 것이고, 다른 하나는 Http404 같은 예외를 선언하는 것이다. 뷰는 데이터베이스에서 레코드를 읽어오거나 또는 읽어오지 못한다. 장고나 또는 써드 파티 파이썬 템플릿을 사용하거나 또는 사용하지 못한다. 파이썬 라이브러리를 활용하여 PDF 파일을 생성하거나, XML 을 도출하거나, ZIP 파일을 생성하기도 한다. 장고는 HttpResponse 또는 예외를 원하는 것이다. 그러면 장고의 데이터베이스 API 를 이용하여 최근 5개의 질문을 뽑아내는 예제를 만들어보자. /root/mysite/polls/views.pyfrom django.shortcuts import renderfr..
AICPA 시험을 보기 위해 어떤 컴퓨터 스킬이 필요한가? (USCPA Examination FAQs - Software)
2015. 7. 17.다소 오래된 내용이기도 하지만, 확인 차원에서 간단히 살펴보고 가겠습니다. AICPA 시험 소프트웨어에 대한 간단한 FAQ 입니다. 컴퓨터로 시험을 본다는데 도대체 어느 정도로 컴퓨터를 다룰 줄 알아야 하나 궁금하셨던 분들 한 번 읽어보세요. 1. AICPA 시험을 보기 위해서는 어떤 컴퓨터 스킬이 필요한가요?일단은 기본적인 스킬만 있으면 가능하다는 안도의 말씀 드립니다. 다소 웃길 수도 있는 이야기이지만 마우스, 키보드 그리고 기본적인 스프레드시트 및 워드 프로세스 기능에 익숙한 정도면 된다는 이야기입니다. 그리고 PC용 계산기도 물론 다룰 줄 알아야 하구요 (이런 걸 모르는 분들은 없으실테니....) 2. 실제 문제풀이를 하기 위해 필요한 특정 스킬 몇 가지만 예를 들어주세요.간단히 예를 들어보자면,..
장고 URLS 에서 달러($)와 캐럿(^)이 의미하는 것은?
2015. 7. 17.장고 URLS 에서 달러($)와 캐럿(^)이 의미하는 것은? $ 와 ^ 은 특별한 의미를 지닌 정규표현식이다. ^ 은 문자열의 시작과 ^ 다음과 같아야 한다는 뜻이며, $ 는 해당 문자열의 마지막과 일치하는 패턴을 의미한다. 예를 들어, 다음의 URL 패턴을 살펴보자. urlpatterns = patterns('', url(r'^hello/$', hello),) 만약 위의 예에서 $ 사인이 없다면 아래의 어떤 URL 과도 매칭이 되는 것이다. hello/satishhello/gandham/hello/satish/123/pqr 만약 루트 경로로 매칭하고 싶으면 url(r'^$', my_homepage_view) 와 같은 식으로 표현하면 된다.
[django] Writing more views
2015. 7. 17.아래와 같이 뷰를 추가해보자.기존의 것과 다른 점은 인수를 가진다는 점이다. mysite/polls/views.pyfrom django.shortcuts import renderfrom django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.") def detail(request, question_id): return HttpResponse("You're looking at the question %s." % question_id) def results(request, question_id): response = "You're looking at the res..
일러스트에서 파일 저장 안될 때 (AppHangXProcB1 조치방법)
2015. 7. 17.AppHangXProcB1 issue 일러스트레이터에서 새로운 파일을 만든 후 저장시 응답없는 경우 다음과 같이 조치하면 저장할 수 있다. CTRL + ALT + DEL 작업관리자 실행→ 서비스 탭으로 이동 → Spooler 상태 중지 문제는 이 경우 프린터를 이용할 수 없다는 점이다. 스풀러를 다시 실행시켜야 프린터를 할 수 있다는 것. 결론적으로 미봉책이라고 밖에 말할 수 없다.다른 방법이 없을까?
NASBA 시스템 정비안내 (7/16~7/17) - 해당 기간 AICPA 시험 응시 불가
2015. 7. 16.7/16~7/17 NASBA 시스템 정비로 CPA Central 사이트 서비스 중지됩니다. 시스템 정비를 위해 NASBA CPA Central 사이트 일시 중지됩니다. CPA Central 정비 기간은 7/16 오후 4시 30분(CDT 기준) 부터 7/17 오전 8시까지 입니다. 해당 시간 동안 CPA Central을 통해 응시 지원을 하실 수 없습니다. 하지만, NTS 재출력이나 점수 확인 등은 가능합니다.
[django] admin 계정 패스워드 리셋하는 방법
2015. 7. 16.지금까지 장고django 로 기본 사이트 구성하는 것에 대해 올려드렸습니다. 이어서 게시물을 올리려고 하는데, 갑자기 계정 정보가 생각이 나지 않습니다. 이런.... 어떻게 하면 다시 로그인할 수 있을까요?아래와 같이 실행하면 현재 슈퍼유저 계정 목록과 패스워드를 리셋하실 수 있으니 참고하시기 바랍니다. (venv)root@cloud:~/mysite# python manage.py shellPython 2.7.3 (default, Aug 1 2012, 05:14:39)[GCC 4.6.3] on linux2Type "help", "copyright", "credits" or "license" for more information.(InteractiveConsole)>>> from django.contrib..
블로그 순위확인 - 7월 3주 제 블로그 순위는 '49,941위'입니다.
2015. 7. 15.자신의 블로그 순위 궁금하셨죠?블로그 챠트에서 지금 바로 확인 가능합니다. http://www.blogchart.co.kr/ 이번 주 제 블로그 순위는 49,941위네요.다음 주도 기대해주세요~
사토 도미오, <잠의 즐거움> - 플래시 flash 수면, 단면, 잠의 특징, 수면조정 호메오스타시스
2015. 7. 15.1. 플래시 수면바쁜 직장인이 '이틀이나 잠을 못 잤다'라고 말했다면 십중팔구 거짓말이다. 긴 시간 동안 잠을 자지 않으면 '플래시 flash 수면'이라고 해서 순간적으로 잠에 빠진다. 잠의 즐거움 - 6시간 수면에 감춰진 놀라운 힘국내도서저자 : 사토 도미오 / 홍성민역출판 : 국일미디어 2006.09.11상세보기 이것은 뇌가 자기 방위를 위해 강제로 만든 수초 간의 짧은 수면으로, 대부분 본인도 깨닫지 못하는 사이에 이루어진다. 이런 강제적이라 할 시스템을 준비하면서까지 뇌는 잠을 필요로 한다. 건강을 위해서 식사에 신경쓰고 운동하는 사람이 늘고 있는데, 이와 더불어 수면 습관도 다시 한 번 확인하도록 하자. 2. 미리 잠을 자두는 것은 의미가 없다단면의 세계 기록은 1965년 미국의 고등학생 랜디 ..
사토 도미오, <잠의 즐거움> - 수면에 대한 의식개혁
2015. 7. 15.잠의 즐거움 - 6시간 수면에 감춰진 놀라운 힘국내도서저자 : 사토 도미오 / 홍성민역출판 : 국일미디어 2006.09.11상세보기 수면에 대한 의식개혁(3장까지의 내용에 대한 요점 정리) - 생활의 기본은 '잠'에 있다.- 하루의 스타트라인은 '잠', 입면할 때 '오늘'이 시작된다.- 자신만의 '입면의식'을 가져라- 취침 전의 입버릇 '잠자리 마법의 말'로 잠을 바꾸어라.- 수면시간대는 자율신경계의 골든 타임- 수면습관을 바꾸면 인생이 바뀐다. 저자가 실천하고 있는 쾌면을 부르는 호흡법을 살펴보자. 이미 흉식호흡과 복식호흡의 차이를 알고 있는 이들이 많을 것이다. 흉식호흡은 늑골을 움직이는 것으로 폐에 공기를 불어넣는 것으로, 호흡을 할 때마다 가슴이나 어깨가 들썩인다. 이에 반해 복식호흡은 폐 아래에..
AICPA, 차기 버전의 USCPA 시험에 엑셀 도입 가능성 시사
2015. 7. 14.AICPA는 차기 CPA 시험에서 고차원의 스킬을 입증할 수 있는 평가 모델 개발중에 있다고 발표했습니다. 그 동안 새로운 버전의 CPA 시험을 위해 유관 개인 및 그룹으로부터 300개 이상의 응답을 취합을 해왔습니다. 이를 정리해 차기 Uniform CPA Examination 에 대한 레포트를 발표했는데 주요 내용은 다음과 같습니다. 비판적 사고, 문제해결 능력, 분석 능력 그리고 전문가적 의구심 등 기본적인 지식 수준을 넘어서는 고차원적인 스킬에 대한 평가가 필요하다는데에 모두 인식을 같이했고, 이에 따라 AICPA는 각각의 시험 섹션에서 이런 고차원적인 스킬을 평가하기 위해 연구중에 있다고 합니다. 그리고 AICPA에서는 테스팅 윈도우에 있어 연장 효과를 줄 수 있는 방안을 검토중에 있다고 합니다..
2014년 기준 AICPA 시험 탈락자 통계
2015. 7. 13.2012년에 CPA 시험을 시작한 많은 지원자들이 2014년까지 상당수 탈락을 하였습니다. 도대체 이 기간동안 무슨 일이 있었던 것일까요? 먼저 차트 보시죠. 여기서 drop-outs 분류의 기준은 다음과 같습니다. 4과목을 전부 합격하지 못했고, 마지막 응시일로부터 18개월이 경과한 경우이며, 년도를 나누는 기준은 첫 번째 섹션을 응시한 연도 기준입니다. 2013년에 응시를 시작한 수험생의 경우를 상상해보겠습니다. 한 섹션 정도를 합격하고 나머지 과목들은 계속 시험에 떨어져서 2014년 어느날 18개월이 도래합니다. 그러고는 '이 시험은 아무래도 나랑 맞지 않아' 뭐 이런 식으로 포기를 하게되는 것이죠. 하지만 2012년에 시작했다면 이 경우는 수험생 개인에게는 좀 더 쓰라린 경험이 되겠는데요. 아마도..
[django] Write your first view
2015. 7. 13.뷰라는 것은 특정한 기능을 수행하고 특정한 템플릿을 지닌 장고 어플리케이션의 웹페이지의 한 유형이다.장고에서는 웹페이지와 기타 컨텐츠가 뷰에 의해 수행된다. 각각의 뷰는 간단한 파이썬 함수에 의해 표현된다. 현재 진행중인 투표 어플리케이션의 경우 아래의 4가지 뷰를 가진다.- 질문 '인덱스' 페이지 : 최근의 몇 가지 질문 표시- 질문 '상세' 페이지 : 질문의 내용 및 투표할 수 있는 폼 포함- 질문 '투표결과' 페이지 : 특정 질문에 대한 결과치 표시- 투표 행위 : 특정한 질문에 대해 특정한 대답을 하는 행위 관리 Write your first view첫 번째 뷰를 만들어 본다. polls/views.py 파일을 열어 다음 코드를 삽입한다. polls/views.pyfrom django.http i..
[django] Customize the admin look and feel
2015. 7. 13.Customizing your project’s templates프로젝트 디렉토리(manage.py 파일을 포함한 디렉토리)에 탬플릿 디렉토리를 생성해보자.setting.py 파일을 열어 템플릿 설정에서 DIRS 옵션을 수정하자. /root/mysite/mysite/settings.py DIRS는 장고 템플릿이 로딩되었을 때 체크해야할 파일시스템 디렉토리의 리스트이다. 장고 소스 파일이 위치한 디렉토리의 admin 템플릿에서 admin/base_site.html 을 복사하여 방금 생성한 admin 디렉토리에 복사한다. 장고 소스 파일 위치는 아래와 같이 찾을 수 있다. root@seoul:~# python -c" > import sys > sys.path = sys.path[1:] > import dja..
[django] Customize the admin change list
2015. 7. 13.Customize the admin change listist_display 옵션을 통해서 보여줄 필드를 아래와 같이 수정할 수 있다. 해당 컬럼의 헤더를 클릭함으로써 정렬 가능 (단, was_published_recently 는 정렬 안됨. 왜냐하면 사용자가 생성한 컬럼의 경우는 지원안됨) /root/mysite/polls/models.py list_display 에 대한 더욱 상세한 내용은 아래 링크 참조 https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display list_filter 를 이용해서 필터 기능을 넣어보자.QuestionAdmin 에 아래 줄을 삽입한다. list_f..
[django] Adding related objects
2015. 7. 13.Adding related objects 하나의 질문에 여러 개의 보기가 있을 수 있음에도, 예제 이미지에는 보기가 보이지 않는다.이 경우 아래와 같이 해결한다. "Question" 필드는 select box 형태를 지니고 있고 현재 존재하는 모든 질문이 들어간다. 즉, 답변이 질문에 대해 가지는 FK 관계가 박스로 표현되는 것이다. 하지만 위와 같이 답변 문항을 생성하는 것은 비효율적이다. 한꺼번에 해당 질문에 대한 답변을 등록할 수 있다면 더욱 효과적일 것이다. 먼저 Choice 모델을 호출하는 register() 를 삭제한 후 다음과 같이 코딩한다. 아래의 의미는 다음과 같다. Choice 오브젝트는 어드민 페이지의 Question 에서 편집 가능하며, 기본값으로 3개의 답변 필드를 가진다. 하지만..
[django] Creating an admin user, Explore the free admin functionality, Customize the admin form
2015. 7. 13.Creating an admin user어드민 사이트에 로그인할 수 있는 관리자 계정을 아래와 생성한다. (venv)root@seoul:~/mysite# python manage.py createsuperuser Username (leave blank to use 'root'): admin Email address: beingawesome@naver.com Password: Password (again): Superuser created successfully. (venv)root@seoul:~/mysite#Start the development server어드민 페이지는 기본적으로 활성화된다.http://127.0.0.1:8000/admin/ 과 같은 형식으로 접속한다. Enter the admin s..
[django] Playing with the API
2015. 7. 13.Playing with the API 단순히 "python"이라고 입력하는 대신에, 앞으로는 아래와 같이 사용할 것이다.왜냐하면 manage.py 가DJANGO_SETTINGS_MODULE 환경변수(mysite/settings.py file 의 경로를 가져온다)를 설정해주는 역할을 하기 때문이다. $ python manage.py shell아래와 같이 DJANGO_SETTINGS_MODULE 환경 변수를 직접 설정하는 방법도 있다.>>> import django >>> django.setup()manage.py 파일이 위치한 디렉토리에서 파이썬을 실행해야 한다.더욱 자세한 내용은 django-admin 문서에서 확인가능하다.이제 그러면 데이터베이스 API 를 살펴보자. # 방금 작성한 모델 클래스를 가져..