프로그래밍/Python 25

Fabric을 이용한 간단한 Tomcat deploy

Tomcat war deploy시, 가장 이상적인 방법은 tomcat stop > copy war > start 순서이다.아래는 간단하게 Python 기반의 Fabric을 이용하여, EC2상에서 pem (SSH)를 이용하여, Host들에 deploy하는 과정을 정의함 #fabfile.pyfrom fabric.api import run,env,execute,taskfrom fabric.operations import local,put def tomcat_cluster(): env.user ='root' env.hosts=['host1.server.com','host2.server.com'] # list of server setting env.key_filename='~/pem/pemfile.pem' # p..

Python Fabric Install

AWS EC2 (Amazon Linux 기준) 1. Python install (dev package로 설치) (반드시 dev package가 설치되어 있어야지, pycrypto 설치시 에러가 나지 않음. pycrptyo는 encryption 관련 라이브러리로 C 라이브러리를 사용하는데, 컴파일중, python.h를 사용한다. 이 헤더 파일은 dev package안에 포함되어 있음) - yum install python-devel 2. pip install $ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py $ [sudo] python get-pip.py 3. gcc가 인스톨 (pycrypto 설치를 위해서 필요함) yum instal..

Python 공부 노트 10. - Django에서 Admin 화면 만들기

Admin 메뉴 추가 하기setting.py에서- admin 항목 uncomment 처리. INSTALLED_APPS에서 admin 모듈을 uncomment 처리하면됨- 다음으로 manage.py에서 syncdb 처리 (app이 새로 등록되었으니 데이타 베이스 테이블 생성) urls.py에서 - admin url을 오픈해주기 위해서 admin 기능 관련 코드 uncomment 처리 그후 django 서버 기동하고 http://xxxx//admin 으로 로그인 하면됨.로그인시 id/passwd는 처음에 manage.py syncdb 할때 넣었던 값으로 함.이 admin 화면에서는 사용자 관리, 그룹 관리, 권한 관리등의 기본적인 기능들을 제공한다. Admin 메뉴에 App admin 기능 추가 하기djan..

Python 공부 노트 8. - Django 에서 model을 이용한 기본 데이타 베이스 프로그래밍

Django는 기본적으로 MVC 모델을 가지고 있고, DB 접근에 대해서는 OR Mapper와 같은 기능을 model 기능을 이용해서 제공한다. 사실 최적화 정도는 조금 고려해봐야 겠지만, 기본적인 사용 방법은 다음과 같다. ==python manage.py syncdb- setting.py를 참고로 하여, default table을 데이타베이스에 생성 python startapp {appname}- 새로운 app을 생성함. - 생성후에는 setting.py에 가서, INSTALLED_APPS 부분에 생성한 app이름을 넣어줘야 컨테이너가 인식함INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.s..

Python 공부 노트 7. - Django 설치

설치Python 설치 후, Django 다운로드 https://www.djangoproject.com/download/ 후에, 압축 풀고 > python setup.py install 설치 확인>>> import django >>> print(django.get_version()) 1.6웹사이트 생성django-admin.py startproject mysitedajngo-admin.py는 C:\dev\Python27\Scripts 에 있음해당 디렉토리에 웹사이트 관련 디렉토리 생성됨 (일종의 Tomcat Home, WebLogic Domain Home 디렉토리 같은 개념, 바이너리는 python 디렉토리 아래에 있음) 웹사이트 실행python manage.py runserver 참고 자료 - https..

Python 공부 노트 6. - Logging

http://docs.python.org/2/howto/logging-cookbook.html # Add the log message handler to the loggerhandler = logging.handlers.RotatingFileHandler( LOG_FILENAME, maxBytes=20, backupCount=5) my_logger.addHandler(handler)my_logger.debug('log message here....') Logger: 일종의 identifier로, 애플리케이션 마다 logger를 정하 수 있음 handler: 파일 핸들러, 소켓 핸들러, Rotating 파일 핸들러등,스트림 핸들러(Console 등)※ DB Handler는 없는 듯 하고, 소켓 핸들러를 이..

Python 공부 노트 5. - 단위 테스트

단위테스트는 자바의 JUnit과 사상이 기본적으로 같음 import unittest class SimpleTest(unittest.TestCase): @classmethod def setUpClass(cls): print("set up class") return @classmethod def tearDownClass(cls): print("tearDown class") def setUp(self): print("this is setup") return def tearDown(self): print("this is tear down") return def testSimple(self): self.assert_(1==2, "my assert failed") def testSecond(self): self.a..

Python 공부 노트 4. - 초간단 RDBMS 프로그래밍

RDBMS 프로그래밍시에는 해당 RDBMS에 대한 드라이버(모듈을) import해야 한다. sqlite의 경우는 이미 들어가 있다. 아래는 가장 기본적인 코드 이다.import sqlite3 conn = sqlite3.connect("datafile")cursor = conn.cursor()cursor.execute("drop table test")cursor.execute("create table test (name text,count integer)")cursor.execute("insert into test(name,count) values('Terry',1)")cursor.execute("insert into test(name,count) values('Cath',2)")conn.commit()r..