프로그래밍 Programming
파이썬 시퀀스 구조 - (1) 리스트
2015. 12. 23.데이터 타입이 원자(atom) 라면, 자료구조는 분자(molecule)에 해당즉, 데이터 타입의 결합임 시퀀스 구조 항목의 정수 위치로 시퀀스의 항목을 나타냄문자열은 문자의 시퀀스, 리스트는 모든 것의 시퀀스리스트와 튜플 - 0 혹은 그 이상의 항목을 포함, 어떤 객체도 요소가 될 수 있음. 리스트 list변경가능 mutable 데이터의 순차적 파악에 유용내용의 순서가 바뀔 수 있는 경우에 유용동일한 값이 여러번 나타날 수 있음 생성 empty_list =[] 또는 empty_list = list() 데이터타입 변환 list() 오프셋으로 항목 얻기 0부터 시작음수의 인덱스는 끝에서 거꾸로 값을 추출범위 벗어나면 list index out of range 리스트의 리스트 all_books[1][0] 두번..
셀레늄 버전 체크 how to check the version of the Selenium API installed
2015. 12. 19.아래와 같이 설치된 셀레늄 버전을 체크할 수 있다. 1234567891011121314151617181920212223242526272829303132333435363738394041C:\Users\fukaeri>python3Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) [MSC v.1900 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> import selenium>>> help (selenium)Help on package selenium: NAME selenium DESCRIPTION # Licensed to the ..
디렉토리 구조 출력 tree 패키지
2015. 12. 16.유용하고 손쉽게 다룰 수 있는 패키지 tree를 설치해보자. tree는 디렉토리 구조를 보여주는 패키지로 아래와 같이 간단히 설치할 수 있다. [설치] # apt-get install tree [실행] # tree antifragile 12345678910111213141516171819202122232425262728293031323334root@localhost:~/antifragile# apt-get install tree패키지 목록을 읽는 중입니다... 완료의존성 트리를 만드는 중입니다상태 정보를 읽는 중입니다... 완료다음 새 패키지를 설치할 것입니다: tree0개 업그레이드, 1개 새로 설치, 0개 제거 및 158개 업그레이드 안 함.37.8 k바이트 아카이브를 받아야 합니다.이 작업 후 10..
장고 정적파일 관리 Managing static files (e.g. images, JavaScript, CSS)
2015. 12. 16.장고에서는 이미지, 자바스크립트, 그리고 css 등을 정적파일(static files)이라고 하는데, django.contrib.staticfiles 을 통해 정적파일을 관리하게 된다. 그러면 아래에서 위의 정적파일(Configuring static files)을 구성하는 방법을 알아보자. 아래와 같이 settings.py 파일 INSTALLED_APPS 항목에 'django.contrib.staticfiles', 가 포함되어 있는지 확인한다. 123456789INSTALLED_APPS = [ 'suit', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'djang..
Django Suit 설치 - 장고 어드민 인터페이스 모던 테마 적용하기
2015. 12. 9.밋밋한 장고 어드민 인터페이스를 모던한 느낌의 인터페이스로 바꿔보자.Django-suit (http://djangosuit.com) 설치하기 1. pip 또는 easy_install 을 이용하여 django_usit 설치123456789101112(envtread)root@localhost:~# pip install django-suit==0.2.15Collecting django-suit==0.2.15 Downloading django-suit-0.2.15.tar.gz (1.4MB) 100% |████████████████████████████████| 1.4MB 181kB/sBuilding wheels for collected packages: django-suit Running setup.py bd..
장고 마키나 설치하기 (4) - 에러 처리 DoesNotExist: Site matching query does not exist
2015. 12. 3.장고-마키나 설치 후 어드민 페이지 클릭시 아래와 같은 에러가 발생하는 경우가 있다. DoesNotExist: Site matching query does not exist.’ when visiting ‘/admin’ on a Django 1.8 DoesNotExist at /admin/login/ Site matching query does not exist. 'django.contrib.sites'를 사용중이라면, SITE_ID = 1 을 정의해줬는지 확인해봐야 한다. settings.py 파일 적당한 위치에 아래 코드 입력한다. 1SITE_ID = 1cs
장고 마키나 설치하기 (3) Django-machina Project configuration - Django-haystack settings/migration/URLs
2015. 12. 3.전편에 이어서 기본 설정을 계속해나갑니다. 1. Django-haystack 설정 장고-마키나는 포럼 검색 기능을 위해 django-haystack 을 사용한다. Django-haystack은 다수의 검색 백엔드 선택이 가능하므로 여러분의 기호에 따라 선택하면 된다. 아래는 기본 설정의 경우다. settings.py 파일에 아래 코드를 넣으면 된다. 12345HAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'haystack.backends.simple_backend.SimpleEngine', },}Colored by Color Scriptercs Solr나 Whoosh 같은 더욱 강력한 백엔드를 사용할 수도 있다. 123456HAYSTACK_CONNECTIONS = ..
장고 마키나 설치하기 (2) Django-machina Project configuration - Django settings
2015. 12. 2.프로젝트 설정 중 장고 설정에 대해 살펴봅니다. 1. INSTALLED_APPS 업데이트 (setting.py 파일 수정) 1) 아래에서 보는 바와 같이 () → [] 리스트 형태로 고친 후(수정하지 않으면 TypeError: can only concatenate tuple (not "list") to tuple가 발생한다) 2) Django-machina related apps 을 추가한다. 1234567891011121314151617from machina import get_apps as get_machina_apps INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'djan..
파이썬 모듈 설치 여부 확인
2015. 12. 2.아래와 같이 설치된 파이썬 패키지 목록을 얻을 수 있다. 1234>>> import pip>>> installed_packages = pip.get_installed_distributions()>>> installed_packages_list = sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])>>> print(installed_packages_list)Colored by Color Scriptercs ['abstract-rendering==0.5.1', 'alabaster==0.7.3', 'argcomplete==0.8.9', 'astropy==1.0.3', 'babel==1.3', 'backports.s..
장고 마키나 설치하기 (1) Django-machina installation
2015. 12. 2.장고 포럼 프레임워크인 장고 마키나를 설치해보자. 1. Django-machina 설치에 필수 요소부터 챙겨보자아래가 사전 준비되어야 할 패키지 목록이다. Python 2.7, 3.3, 3.4 or 3.5 → 2.7Django 1.5.x, 1.6.x, 1.7.x or 1.8.x → 1.78.2Pillow 2.2. or higher → 2.8.2Django-model-utils 2.0. or higher XDjango-mptt 0.7. or higher XDjango-haystack 2.1. or higher → 2.3.2Django-markdown 0.7. or higher X Django-widget-tweaks 1.4. or higher XSouth 1.0.1 or higher if you are u..
장고 포럼 비교 Django Forum Comparison
2015. 12. 2.장고 프로젝트 위키에도 포럼 비교 게시물이 있으나 최신의 정보를 담고 있지는 못하다. 장고 패키지 사이트의 아래 게시물이 내용면에서 훨씬 충실하고 도움이 되는 것 같다. 장고/파이썬으로 포럼을 만들고자 하시는 분들은 참고하면 좋겠다. https://www.djangopackages.com/grids/g/forums/
아나콘다 다중 환경구성 _ 파이썬 3.5 환경 구성하기 Create a Python 3.5 environment
2015. 12. 1.아나콘다에서 다른 버전의 파이썬 환경을 구축하고자 하는 경우 conda create 명령어를 사용하면 된다. 그럼 현재 파이썬 2.7이 설치된 상황에서 파이썬 3.5 환경을 추가로 구성해보자. 먼저 현재 설정된 아나콘다 환경과 파이썬 버전을 확인해보자.(* 표시된 것이 현재 로딩된 환경이다) 12345root@localhost:~# conda info --envs# conda environments:#envtread /root/anaconda/envs/envtreadroot */root/anacondacs envtread 라는 이름의 가상환경을 활성화하고 파이썬 버전을 확인해보면 Python 2.7.10 이 설치되어 있음을 알 수 있다. 1234567891011root@localhost:~# source..
셀레늄(selenium)을 이용한 네이버 자동검색 및 결과 클릭
2015. 11. 28.셀레늄을 이용하여 네이버 검색창을 띄우고, 검색 결과 중 특정 문자열을 가지는 결과를 클릭하는 스크립트를 작성해봅니다. 주의! 기본중의 기본이지만 대소문자 구별은 철저하게 헤주세요. ImportError 발생할 수 있습니다. 123456789101112131415161718192021222324252627282930#-*- coding: utf-8 -*-from selenium import webdriverfrom selenium.webdriver.common.keys import Keys # Firefox 웹드라이버 생성driver = webdriver.Firefox() # 주어진 URL 웹페이지 로딩driver.get("http://www.naver.com") # 해당 사이트의 제목이 NAVER 인지..
셀레늄(Selenuim) 설치 및 테스팅 (윈도우/파이썬)
2015. 11. 28.1. 파이썬 2.x 또는 3.x 설치https://www.python.org/downloads/ 2. 셀레늄 설치파이썬을 실행한 후 아래와 같이 셀레늄 설치(설치버전 또는 설치경로에 따라 다를 수 있음) C:\Python34\Scripts\pip.exe install selenium 3. 테스팅 스크립트 작성 functional_test.py from selenium import webdriver browser = webdriver.Firefox() browser.get('http://localhost:8000') assert 'Django' in browser.title 아래와 같이 소문자로 입력시 TypeError 를 발생시키게 되므로 주의한다. browser = webdriver.firefox() ..
object has no attribute 'title' and getattr(object, name[, default])
2015. 11. 20.def getwordcounts(url): d=feedparser.parse(url) wc={} for e in d.entries: if 'summary' in e: summary=e.summary else: summary=e.description words=getwords(e.title+' '+summary) for word in words: wc.setdefault(word,0) wc[word]+=1 return d.feed.title, wc 파싱하고자 하는 URL이 유효한 피드가 아닌 경우, 예를 들어 URL 이 일반 웹페이지거나 피드가 없는 경우 아래와 같은 에러를 일으킨다. AttributeError at object has no attribute 'title' 이 경우 getattr 을 이용하..
feedparser 5.2.1 (universal feed parser)
2015. 11. 14.feedparser 설치 설치여부 확인 (envtread)root@localhost:~/antifragile# python Python 2.7.10 |Anaconda 2.3.0 (64-bit)| (default, Sep 15 2015, 14:50:01) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2 Type "help", "copyright", "credits" or "license" for more information. Anaconda is brought to you by Continuum Analytics. Please check out: http://continuum.io/thanks and https://anaconda.org >>> import feed..
render_to, render_to_response
2015. 10. 26.render_to, render_to_response 에서 변수 전달은 아래와 같이 할 수 있다 @render_to('template.html') def foo(request): bar = Bar.object.all() return {'bar': bar} # equals to def foo(request): bar = Bar.object.all() return render_to_response('template.html', {'bar': bar}, context_instance=RequestContext(request))
ImportError: No module named mechanize
2015. 10. 23.ImportError: No module named mechanizemechanize 설치 (envtread)root@localhost:~/antifragile# pip install mechanizeCollecting mechanize Downloading mechanize-0.2.5.tar.gz (383kB) 100% |████████████████████████████████| 385kB 441kB/sBuilding wheels for collected packages: mechanize Running setup.py bdist_wheel for mechanize Stored in directory: /root/.cache/pip/wheels/76/df/92/81fc6784ee60ceb2871e73..
윈도우에 easy_install, pip 설치하기
2015. 10. 17.윈도우에 easy_install, pip 설치하기 1. ez_setup.py 파일 다운로드 https://pypi.python.org/pypi/setuptools/1.0#windows 2. cmd 창 실행 후 아래 명령어 입력 C:\Users\py> python ez_setup.py build C:\Users\py> python ez_setup.py install 3. path 추가 고급시스템 설정 > 고급 > 환경변수 > 사용자변수 > path 편집 > C:\Python27\Scripts 추가 4. cmd 창 실행 후 아래 명령어 입력 C:\Users\py> easy_install pip
Anaconda Package List (Python version: 2.7)
2015. 10. 17.Anaconda Package List — Continuum documentation Python Visualization and Data Exploration - Continuum Analytics Anaconda Package List [출처] http://docs.continuum.io/anaconda/pkg-docs Python version: 2.7Number of supported packages: 340 Name Version Summary / License In Installer abstract-rendering Linux Mac 0.5.1 Rendering as a binning process / 3-clause BSD affine 1.1.0 Matrices describing affin..
MySQL 한글이 ???와 같이 깨져나올 때
2015. 10. 5.MySQL 에 입력된 한글이 ???와 같이 깨져나올 때 아래와 같이 해당 테이블, 해당 컬럼의 속성을 변경하여 준다. ALTER TABLE `book` CHANGE `bookname` `bookname` VARCHAR( 128 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
MySQL Error Code: 1175 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
2015. 10. 3.UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root' Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.031 sec 안전모드 해제를 위해서는 Edit > Preferences > SQL Editor> Other 항목에서 "Safe Mode" 부분을 체크 해제한다.
장고 삭제하기 (How to remove django from Ubuntu?)
2015. 9. 27.1.Install python-pip sudo apt-get install python-pip 2.Remove django using pip sudo pip uninstall Django 3.Uninstall python-pip sudo apt-get remove python-pip
Error 1130 Host 'xxx' is not allowed to connect to this MySQL Server
2015. 9. 27.MySQL Workbench 등을 통해 원격에서 MySQL DB 접속시 상기와 같은 에러가 뜨는 경우에는 다음과 같이 처리한다. 먼저 root 계정으로 접속이 허용된 ip 를 살펴보자. root@localhost:~# mysql -p Enter password: mysql> select host from mysql.user where user='root'; +-----------+------+-------------------------------------------++-----------+------+-------------------------------------------+ 그리고 아래와 같이 테이블에 전체 ip에서 허용이 가능하도록 행을 하나 삽입해주는 것이다. 만약 해당 정책이 필요없다면 해..
Ubuntu에 MySQL 설치, 서버실행확인, 설정변경, root 패스워드 변경
2015. 9. 27.1. Ubuntu에 MySQL 서버 설치 MySQL을 설치하기 위하여, 터미널 프롬프트에서 다음 명령을 실행 합니다: sudo apt-get install mysql-server 위의 설치 과정에서 root 사용자 패스워드를 설정할 수 있다. 2. 서버 실행 확인 MySQL 서버가 실행중인지 여부는 아래와 같이 확인할 수 있다. sudo netstat -tap | grep mysql 아래와 같이 실행중임을 확인할 수 있다. tcp 0 0 localhost:mysql *:* LISTEN 1407/mysqld 서버가 실행중이 아니라면 아래와 같이 실행시킬 수 있다. sudo service mysql restart 3. 설정 변경 기본적인 설정은 /etc/mysql/my.cnf 파일을 통해 할 수 있다. 설정..
우분투(Ubuntu) 아나콘다(Anaconda) 설치
2015. 9. 27.아나콘다는 파이썬(3.4.3, 3.3.5, 2.7.10, and/or 2.6.9)을 포함하여 150여개의 과학 및 분석에 사용되는 파이썬 패키지를 손쉽게 설치해주는프로그램이다. 아나콘다 설치 방법에 대해서는 아래 링크를 참조한다. http://docs.continuum.io/anaconda/install 우분투 등 리눅스 운영체제의 경우 아나콘다를 다운로드한 후 아래 명령을 실행한 후 터미널을 종료하고 다시 실행하면 된다. bash ~/Downloads/Anaconda-2.3.0-Linux-x86_64.sh 위의 사이트에서 다운로드받지 않고 아래와 같이 wget을 이용해서 직접 다운로드할 수도 있다. wget https://3230d63b5fc54e62148e-c95ac804525aac4b6dba79b0..
장고 소스 파일 위치 찾기 (Where are the Django source files?)
2015. 9. 24.장고 소스 파일의 위치는 다음과 같이 찾을 수 있다. C:\Users\fukaeri>python Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on wi n32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path = sys.path[1:] >>> import django >>> print(django.__path__) ['C:\\Python27\\lib\\site-packages\\django-1.9-py2.7.egg\\django'] >>>
Django에서 ForeignKey 사용시 NameError 가 뜨는 경우
2015. 9. 12.Django에서 ForeignKey 사용시 NameError 가 뜨는 경우 아래 예제에서와 같이 Chpater 클래스에서 UserInfor 클래스의 sn 을 Foreign Key 관계를 맺을려고 하는 경우 아래와 같이 NameError가 뜨는 경우이다. NameError : .... is undefined. class Chapter(models.Model): sn = models.ForeignKey(UserInfo) .......... class UserInfo(models.Model): sn= models.CharField(max_length=20, primary_key=True) nm = models.CharField(max_length=50, blank=True, null=True) userid =..
외부에서 장고 웹서버 접속하기(Accessing local django webserver from outside)
2015. 9. 10.외부에서 장고 웹서버에 접속하기 위해서는 서버의 호스트나 포트를 변경해야 한다. 아래에서 이에 대해 살펴본다. 기본적으로 장고는 포트 8000 으로 실행된다. 만약 서버 포트를 변경하고 싶다면 아래와 같이 한다. python manage.py runserver 8080 이렇게 실행을 하였다고 해서 http://127.0.0.1:8000/ 으로 접속하는 것이 불가능한 것은 아니다. http://127.0.0.1:8000 과 http://127.0.0.1:8080 둘다 가능하다고 보면 된다. 그리고 IP 주소를 지정함으로서 로컬이 아닌 외부에서도 접속이 가능하다. 다음과 같이 실행한다. python manage.py runserver 0.0.0.0:8000 여기서 0.0.0.0 라는 IP 주소는 어떤 네트워..
Windows 7 IIS 설치 및 열기
2015. 9. 7.IIS 관리자 기능 실행 윈도우 7에서는 기본적으로 설치되어 있지 않다. 아래와 같이 설치한다. 제어판 - 프로그램 및 기능 - Windows 기능 사용 / 사용안함 - 인터넷 정보 서비스 체크 IIS 7 설치 및 배포에 대해서는 아래 링크를 참고해주세요. https://technet.microsoft.com/ko-kr/library/ee692294%28v=ws.10%29.aspx IIS 관리자 열기 제어판 - 시스템 및 보안 - 관리 도구 - IIS(인터넷 정보 서비스) 관리자 에서 실행 추가적인 내용은 아래 링크 참고하세요. https://technet.microsoft.com/ko-kr/library/Cc770472%28v=WS.10%29.aspx