반응형

Programming/Python 16

C/C++ dll로 만든 함수를 Python에서 사용 (feat. ctypes)

Python의 기본 모듈 중 하나인 ctypes를 이용해서 C언어로 컴파일된 dll안에 넣은 함수를 실행하는 방법을 기록한다. 우리가 사용하고자 하는 C 함수의 인풋과 아웃풋 형식만 잘 맞춰주어야 한다는 것만 기억하면 어렵지 않은 일이다. 계산 속도를 올리기 위해서 C언어를 이용할 때, 더 나아가 CUDA 등의 병렬계산을 이용하고자 할 때 유용하게 이용할 수 있다. 여기서 C코딩이나 CUDA를 다루지는 않는다. 나는 Microsoft Visual Studio 2013 community edition과 Python 2.7.11을 사용하였다. 1. C/C++ 코드 함수를 선언할 때 _stdcall 을 붙여주어서 표준통신규약을 지키게 해야 한다고 한다 (뭔지 잘 모름). ## 파일명: dllfunction.c..

Programming/Python 2016.06.11

PDFMiner 설치: Python에서 pdf를 html이나 text파일로 변환

pdf를 쉽게 접근할 수 있는 html이나 text 파일 형식으로 변환하고자 할 때, 그 와중에 웹 상에서 제공하는 변환 서비스를 이용하긴 꺼림칙하고 파이썬 코딩으로 간편하게 할 수 있는 방법이 없을까..? 싶을 때. 결국 최종적으로 당신이 도착할 곳은 PDFMiner일 것이라고 생각한다. 모듈 설치 후 바로 사용할 수 있는 코드도 제공하기 때문에 속도에 크게 신경 쓰지 않고 사용하기에는 큰 불편이 없을 것 같다. 참, PDFMiner 모듈은 Python 2 버젼에서만 사용 가능하다고 하니 참고하자. 1. 설치 pip 명령어를 이용하면 간단히 설치 가능. pip install pdfminer 다만 한중일 언어 (CJK Languages) 의 pdf 문서도 변환하기 위해서는 별도의 설치 과정이 필요하다. ..

Programming/Python 2016.04.30

Django Form에서 DOM class 설정 등의 front-end 조작법

웹을 만들면서 귀찮은 일 중의 하나가 form이다. 입력 폼을 구성하고 디자인을 맞추고, 또한 필요하다면 front-end에서 체크할 수 있게 javascript도 짜게 될 수도 있다. back-end에서 값을 받아서 처리하는 일도 해야한다. 개인적으로 서버 로직 짜는 건 괜찮은데 보이는 쪽을 만지는 것은 꽤나 귀찮은 일이다. 다행히 django에서는 form에 관한 사항을 일괄적으로 다루기 때문에 많은 도움이 되기는 커녕 front-end쪽을 건드리는 것은 아니기 때문에 여전히 내가 하기 싫은 일은 남아있다. 초심자라면 더욱이 난감한 상황이 발생할 수 있다. 우선 django에서 다음의 간단한 form을 쓰겠다 (폼 필드를 일일이 쓰기 싫어서 ModelForm을 씀을 양해부탁드립니다).# myapp/f..

Programming/Python 2016.04.02

무분별한 회원가입을 막는 Google Recaptcha 사용법

이 세상엔 무서운 사람들이 많다. 전 세계를 돌아다니며 어딘가를 뚫고 들어오려는 동유럽 친구들을 두고 하는 말이다. 자신의 블로그나 웹페이지가 있다면 네이버나 구글 애널리틱스 등을 통해서 한 번 지켜보면 분명히 바다 넘어의 누군가가 우리를 지켜보고 있다는 것을 알 수 있을 것이다. 이런 저런 연유로 이번에는 django 웹앱에서 구글 recaptcha를 넣어서 기계가 아닌 진정한 사람만이 회원가입을 할 수 있도록 하려한다.이게 뭔지 모르는 사람을 위해 CAPTCHA의 위키 설명을 첨부한다.CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart, 완전 자동화된 사람과 컴퓨터 판별,캡차)는 HIP(Human Inte..

Programming/Python 2016.03.26

django 모델 상속 ( Model Inheritance )

django의 ORM ( Object-Relational Mapping ) 기능은 데이터베이스 구조를 머리속 그림대로 직관적으로 구현하는 데에 매우 편리하다. 만약 당신이 SQL에 숙련되지 못했다면 엄두를 내지 못할 DB 구조를 django에서는 파이썬 코드를 통해 비교적 쉽게 해결할 수 있는 것이다. 이번에는 수 많은 django의 ORM 기능 중에서 상속 기능만 간단히, 그리고 부분적으로 설명해 보고자 한다.django는 세 가지의 모델 상속 타입을 제공하는데 abstract base classes, multi-table inheritance, proxy model 이라는 이름으로 django doc에서 설명한다. 객체 지향적인 프로그래밍을 요즘은 모두들 아시기 때문에 상속에 대해서 설명하진 않을 것..

Programming/Python 2016.03.19

django signal의 이해를 위한 간단한 예제

django 프레임워크는 어떤 특정한 일을 수행할 때마다 알려줄 것을 설정하고, 그 때에 지정한 동작을 수행할 수 있게 하는 신호(signal)를 발생하는 기능을 가지고 있다. 자바스크립트의 이벤트를 생각해보면 아마도 이해하는 데 도움이 될 것이다. django에서 signal이 어떻게 돌아가는 지를 간단하게 예제를 통해 설명해 보겠다.여러 종류의 signal이 있는데, 여기서는 post_save signal을 이용해서 DB model에 관련해서 save가 작동하면, 저장이 완료된 이후에 지정한 동작을 수행하는 예제를 써보겠다.myapp/models.pyfrom django.db import modelsclass Location( models.Model ): country = models.CharFiel..

Programming/Python 2016.03.18