프로그래밍 Programming
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
파이썬, 장고, 그리고 오라클 데이터베이스 연결하기 (2)
2015. 8. 25.1. Customizing change lists 앞서 만든 user 조회 어플리케이션을 실행해보면 아래와 같이 해당 사용자의 이름이 구분되지 않고 일괄적으로 MstUser object 라고 표시되어 알아보기 힘들다. 이 부분부터 고쳐보자. bourne_users/admin.py 파일을 아래와 같이 수정한다보여주고자 하는 컬럼명을 fieldsets 에 넣고, list_display 에는 리스트에 보여주고 하는 항목을 넣는다from django.contrib import admin from bourne_users.models import MstUser class MstUserAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['usn']}), ('Regi..
파이썬, 장고, 그리고 오라클 데이터베이스 연결하기 (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] 를 통해서 트윗 데이터가 제대로 출력..