프로그래밍 Programming
Django - Error: That port is already in use.
2016. 9. 20.Django runserver 실행시 Error: That port is already in use. 가 발생하는 경우 아래와 같이 해당 프로세스를 죽인 후 다시 실행한다. 1234567891011Error: That port is already in use.## ps aux | grep -i manageroot 73 0.0 0.0 0 0 ? S
하스켈 리스트
2016. 7. 10.1. 리스트는 같은 종류의 데이터 구조이다.2. 리스트는 대괄호로 둘러싸이며, 리스트의 값은 콤마로 구분된다.3. ++ 연산자를 이용하여 리스트를 연결한다. 주의할 점은 하스켈은 ++ 의 왼쪽에 위치한 첫 번째 리스트 전체를 읽어들여야 하기 때문에, 항목이 많은 경우 이런 점을 고려하여야 한다.++ 연산자는 항상 두 개의 리스트를 인자로 받는다. 따라서 ++ 를 이용하여 어떤 리스트의 끝에 단 하나의 항목을 추가하고자 하는 경우에도 그 항목을 대괄호로 감싸야 한다. 그래야 리스트로 취급하여 ++ 연산자가 정상적으로 작동한다. 123456789101112131415Prelude> [1,2,3,4,5] ++ 5:49:1: Non type-variable argument in the constraint: Nu..
하스켈 함수 호출하기 및 함수 정의하기
2016. 7. 10.1. 함수 호출하기 - 중위함수(infix function)와 전위함수(prefix function)1) 대부분은 전위함수이며, 형식은 다음과 같음매개변수는 공백으로 구분됨[함수의 이름] [공백] [매개변수1] [공백] [매개변수 2] .... 12Prelude> min 3.4 3.23.2 cs 2) 함수는 모든 연산자 중 가장 높은 우선순위를 가짐라인 5 에서 보듯이 succ 9 이 먼저 실행되고 결과값 10과 10을 곱해서 100이 나오게 됨 123456789Prelude> succ 9 + max 5 4 + 116Prelude> (succ 9) + (max 5 4) + 116Prelude> succ 9 * 10100Prelude> succ (9*10)91 Colored by Color Scripter..
하스켈의 특징(철학)
2016. 7. 10.하스켈은 순수 함수형 프로그램밍 언어이다. 1. 순수 함수형 프로그래밍 언어는 어떤 작업을 하라고 컴퓨터에게 알려주는 것이 아니라, 그 작업이 무엇인지를 알려준다. 예를 들어 컴퓨터에게 숫자의 팩토리얼은 1부터 그 숫자까지의 모든 정수의 곱이라고 말한다거나, 숫자 리스트의 합은 첫 번째 숫자들의 합을 더한다고 말할 수 있다. 그리고 이러한 작업들은 함수로 표현할 수 있다. 2. 함수형 프로그래밍에서는 변수에 하나의 값을 설정하고 나중에 다른 것으로 설정할 수 없다. 3. 순수 함수형 언어에는 함수는 부작용이 없다. 함수가 할 수 있는 유일한 것은 어떤 것을 계산하여 그 결과를 반환하는 것이다( 참조투명성 : 어떤 함수를 동일한 매개변수로 두 번 호출하면 두 번 모두 동일한 결과를 반환한다는 것이 보장된다..
하스켈 플랫폼 설치 및 시작하기
2016. 7. 10.미란 리포바카(Miran Lipovača)의 의 내용을 바탕으로 하스켈 학습내용을 기록해봅니다. 먼저 아나콘다 가상환경에서 하스켈을 설치하고 구동하는 부분입니다. 가장 쉬운 하스켈 책국내도서저자 : 미란 리포바카(Miran Lipovaca) / 황반석역출판 : 비제이퍼블릭 2014.02.25상세보기 1. 아나콘다 가상환경 구축 및 활성화 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051root@localhost:~# conda info --envs# conda environments:#root * /root/anacondaroot@localhost:~# conda create -n env..
장고 파일 업로드 Django File Uploads
2016. 6. 4.파일을 업로드하는 페이지를 만들어봅니다.기존에 프로젝트는 생성되어 있다고 가정하고 진행합니다. 1. setting.py 파일에 파일이 저장될 위치 지정 123#settings.pyMEDIA_ROOT = os.path.join(BASE_DIR, 'media')MEDIA_URL = '/media/'cs 2. FileField 를 가진 Document 모델 생성 12345#models.pyfrom django.db import models class Document(models.Model): docfile = models.FileField(upload_to='documents/%Y/%m/%d')cs 3. Form 을 만든다 12345678# forms.pyfrom django import forms class..
django migrate gets error “table already exists”
2016. 6. 4.이미 테이블을 생성해놓은 경우에는 아래와 같이 마이그레이션 실행시 테이블이 이미 존재한다고 나오면서 에러를 발생시킨다. django.db.utils.OperationalError: (1050, "Table 'blog_category' already exists") 이 경우에는 아래와 같이 명령을 실행하여 마치 마이그레이션 완료된 것처럼 해준다. python manage.py migrate --fake ※ 장고 1.8 버전부터 migrate 명령어에 --fake-initial 플래그가 추가되었다. 이전 버전에서는 테이블이 이미 존재하는 경우 장고에서 자동으로 이 부분을 처리했었다.https://docs.djangoproject.com/en/1.8/topics/migrations/#upgrading-from..
Django 404/500 에러페이지 만들기 Django - creating a custom 500/404 error page
2016. 5. 13.Django 환경에서 http 404 및 http 500 에러 메시지 커스토마이징하는 법 1. 먼저 DEBUG 모드를 종료한다.settings.py 123DEBUG = False ALLOWED_HOSTS = ['www.pywiki.xyz']cs 2. urls.py 파일에 아래 내용 삽입urls.py 12345678from django.conf.urls import ( handler400, handler403, handler404, handler500) handler400 = 'blog.views.bad_request'handler403 = 'blog.views.permission_denied'handler404 = 'blog.views.page_not_found'handler500 = 'blog.view..
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
2016. 5. 13.settings.py 에서 아래와 같이 변경한 후 CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False. 에러가 뜨는 경우에는 DEBUG = True 아래와 같이 settings.py 파일의 ALLOWED_HOSTS 항목에 허용할 도메인 또는 IP 어드레스등을 입력해준다. 123 ALLOWED_HOSTS = [ ] cs 123 ALLOWED_HOSTS = ['www.pywiki.xyz'] Colored by Color Scriptercs
Yahoo GeoPlanet 를 이용한 트위터에서 유행하는 주제 알아보기 (3) - 국가별 WOE ID 찾아서 트렌드 알아보기
2016. 5. 8.국가별로 WOE ID 를 조회하여 트위터를 통해 나타난 트렌드를 알아보고 세계 트렌드와 비교해보는 페이지를 만들어보자. 1. 먼저 국가별 WOE ID 조회에 필요한 패키지를 설치한다. yweather 라는 패키지(https://pypi.python.org/pypi/yweather/0.1)를 이용하여 국가별 WOE ID 를 찾을 수 있는데, yweather 는 Yahoo! Weather RSS feed 인터페이스를 제공하기 위한 파이썬 모듈이다. yweather 설치 123456789envalpha)root@localhost:~/# pip install yweatherCollecting yweather Downloading yweather-0.1.1.tar.gzBuilding wheels for colle..
Yahoo GeoPlanet 를 이용한 트위터에서 유행하는 주제 알아보기 (2)
2016. 5. 8.앞의 예제를 응용하여 특정 두 지역의 공통된 트렌드 찾기 본 예제에 사용된 교집합(intersection)외에 집합에 대한 연산은 아래 링크 참조https://docs.python.org/3/library/stdtypes.html#set 12345678910111213141516171819202122232425262728from django.shortcuts import render_to_response, render, redirectimport twitter def get_twitter_trends(request): CONSUMER_KEY = '*****************' CONSUMER_SECRET = '*****************' OAUTH_TOKEN = '*****************..
Yahoo GeoPlanet 를 이용한 트위터에서 유행하는 주제 알아보기 (1)
2016. 5. 8.Yahoo GeoPlanet 를 이용하여 트위터에서 유행하는 주제를 알아보자.야후 GeoPlanet 의 Where On Earth(WOE) ID 시스템은 지구상의 장소와 고유의 식별자를 매핑시키는 방법을 제공한다.이 API 를 이용하여 한정된 쿼리를 실행해보자. [참조링크] https://dev.twitter.com/rest/reference/get/trends/place https://developer.yahoo.com/geo/geoplanet/guide/concepts.html [WOE ID 검색]아래의 사이트를 통해서 WOE ID를 찾을 수 있다.http://woeid.rosselliot.co.nz/ 서울의 경우 1132599 이다. District-County Province-StateCountr..
트위터 계정 접근을 위한 어플리케이션 인증
2016. 5. 8.트위터의 데이터를 활용하기 위한 OAuth 인증증명과 API 접근 획득을 위해서는 아래 사이트에서 새로운 트위터 어플리케이션을 생성해야 한다. https://apps.twitter.com/ 〉 CREATE NEW APP 제대로 연결되었는지 확인해보기 위해 아래와 같이 작성한 후 출력해보자. 123456789101112131415from django.shortcuts import render_to_response, render, redirectimport twitter def get_twitter_data(request): CONSUMER_KEY = '********************' CONSUMER_SECRET = '****************' OAUTH_TOKEN = '*************..
우분투 Pillow 설치 에러 Error for pip install Pillow on Ubuntu virtualenv
2016. 3. 22.우분투 Pillow 설치 에러 Error for pip install Pillow on Ubuntu virtualenv 아래와 같이 pip install Pillow 실행시 발생하는 에러에 대한 조치방법 1. 우분투 버전 확인 12(envalpha)root@localhost:~# cat /etc/issueUbuntu 14.04.2 LTS \n \lcs 2. Pillow 설치가이드에서 해당 OS 버전에 맞는 내용을 확인해보자. 설치가이드 http://pillow.readthedocs.org/en/3.0.x/installation.html Pillow 설치 전에 선행되어야 할 내용들이 있다. Prerequisites are installed on Ubuntu 14.04 LTS with: $ sudo apt-..
MariaDB 장고 프레임워크 연동
2016. 3. 19.1. 커넥터 설치 mysql-python 은 파이썬 3.5 를 지원하지 않는다.아래와 같이 3.5를 지원하는 커넥터를 설치한다. sudo apt-get install libmysqlclient-dev pip install mysqlclient 1234567891011121314151617raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'(envalpha)root@localhost:~# conda install mysql-pythonFetching package ..
우분투에 MariaDB 설치하기 Install MariaDB on Ubuntu
2016. 3. 19.우분투에 MariaDB 설치하기 Install MariaDB on Ubuntu 1. 다운로드/설치 isntall from repository 12apt-get update -yapt-get install mariadb-servercs root 패스워드 입력 2. 검증 Verify that MariaDB is operational 1mysql -u root -pcs root 비밀번호를 입력하면 설치된 MariaDB의 정보를 아래와 같이 볼 수 있다.만약 에러 메시지가 출력되면 아래의 명령어 입력하여 서비스를 시작한다. 1service mysql startcs 마리아DB 클라이언트 도구는 아래에서 다운로드한다.https://mariadb.com/kb/en/mariadb/graphical-and-enhance..
Related Field got invalid lookup: icontains
2016. 3. 13.위의 Related Field got invalid lookup: icontains 에러는 ForeignKey가 검색 필드에 포함되어 일어나는 에러다.아래의 예를 통해 살펴보자. 아래의 예제는 세션을 관리하는 모델로, mstusers가 ForeignKey로 MstUser 모델의 사용자 정보를 가져오도록 되어 있다. models.py12345678910class MstSession(models.Model): sesskey = models.CharField(max_length=64, primary_key=True, null=False, verbose_name="Session") mstusers = models.ForeignKey('MstUser', db_column='usn', null=True) remot..
Admin 페이지에서 특정 필드 readonly 로 변경하기
2016. 3. 13.기본적으로 장고의 어드민 페이지는 모든 필드를 편집가능한(editable) 상태로 보여준다.다음과 같이 특정 필드를 편집하지 못하게 readonly 필드로 만들 수 있다. 적용전(편집이 가능한 상태) 아래 예제는 세션 관리 테이블의 경우다.2행과 같이 readonly 로 만들고 싶은 필드명을 튜플 형태로 기입한다. admin.py12345678910111213class MstSessionAdmin(admin.ModelAdmin): readonly_fields = ('sessionkey',) fieldsets = [ ('Session Key', {'fields': ['sessionkey']}), (None, {'fields': ['id']}), (None, {'fields': ['remote_ip']}),..
except Exception, e : SyntaxError: invalid syntax
2016. 3. 13.12 except Exception, e : return "Error:%s" % str(e) cs 위의 에러는 파이썬3에서는 더 이상 컴마로 구분하는 것을 허용하지 않기 때문이다. , 대신 아래와 같이 as 를 사용하면 된다.as 는 파이썬 2.7 과도 호환된다. 12 except Exception as e : return "Error:%s" % str(e) cs
Django Suit configuration 장고 어드민사이트 커스토마이징
2016. 2. 27.장고 관리자 페이지 메뉴명, 아이콘 변경 등은 앞서 설치한 Django Suit 을 통해 커스토마이징할 수 있다. settings.py 파일에 아래 내용 추가하여 커스토마이징한다.항목별 자세한 내용은 아래 링크 참조http://django-suit.readthedocs.org/en/develop/configuration.html#menu-open-first-child 12345678910111213141516171819202122232425262728293031323334 # Django Suit configuration exampleSUIT_CONFIG = { # header 'ADMIN_NAME': 'PySITE Dashboard', 'HEADER_DATE_FORMAT': 'l, j. F Y', 'H..
No Java virtual machine was found after searching the following locations.
2016. 2. 23.eclipse 폴더내 eclipse.ini 파일을 열어 아래와 같이 jvm 의 위치를 넣어준다. 123456789101112131415161718192021-startupplugins/org.eclipse.equinox.launcher_1.3.200.v20151021-1308.jar--launcher.libraryplugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.300.v20160105-0945-productorg.eclipse.epp.package.java.product--launcher.defaultActionopenFile-vmC:\Program Files\Java\jdk1.8.0_66\bin-showsplashorg.eclipse.platform..
컴파일된 자바 클래스 파일 컴파일 버전 확인방법
2016. 2. 19.1. javap 를 이용하는 방법 123C:\Program Files\Java\jdk1.8.0_66\bin>javap -verbose login | find "version" minor version: 0 major version: 46Colored by Color Scriptercs C:\Program Files\Java\jdk1.8.0_66\bin>javap Usage: javap where possible options include: -help --help -? Print this usage message -version Version information -v -verbose Print additional information -l Print line number and local variabl..
오라클 다중행 삽입 쿼리 Inserting multiple rows in Oracle
2016. 2. 13.오라클에서 다중행 삽입은 아래와 같은 방식으로 한다.Inserting multiple rows in one SQL statement INSERT ALL INTO tableA (column1, column2, ..... ) VALUES ('value1', 'value2', ...) INTO tableA (column1, column2, ..... ) VALUES ('value3', 'value4', ...) INTO tableA (column1, column2, ..... ) VALUES ('value5', 'value6', ...) SELECT * FROM dual;
Anaconda for Windows와 Django 설치
2016. 2. 11.1. Windows Anaconda 설치 https://www.continuum.io/downloads 2. 가상환경 설정 12345C:\Users\fukaeri>mkdir haskelC:\Users\fukaeri>cd haskelC:\Users\fukaeri\haskel>python3 -m venv envhaskelC:\Users\fukaeri\haskel>envhaskel\Scripts\activate(envhaskel) C:\Users\fukaeri\haskel>cs 3. 장고 설치 1) 설치된 장고 확인 - 아래에서 보다시피 django 라는 모듈이 없다. 123456789(envhaskel) C:\Users\fukaeri>pythonPython 3.5.1 |Anaconda 2.5.0 (32-bi..
Error: [WinError 10013] 액세스 권한에 의해 숨겨진 소켓에 액세스를 시도했습니다
2016. 2. 4.Django 설치 후 웹서버 구동시 아래와 같은 에러가 나는 경우 socket.error: [Errno 10013] An attempt was made to access a socket in a way forbidden by its access permissions 123456789(myvenv) C:\Users\django>python manage.py runserver 0:8000Performing system checks... System check identified no issues (0 silenced).February 02, 2016 - 19:55:14Django version 1.9.2, using settings 'mysite.settings'Starting development serv..
PIP install 에러 - PermissionError: [WinError 5] Access is denied
2016. 2. 2.pip 업그레이드 아래와 같은 에러가 뜨는 경우 처리방법 C:\Users\Administrator>pip install --upgrade pip PermissionError: [WinError 5] Access is denied 이런 경우에는 아래 그림에서 보듯이 명령 프롬프트를 관리자 권한(Run as Administrator)으로 실행한 후 설치한다.
Windows 7 비정상 종료시 체크사항
2016. 1. 25.Windows 7이 예기치 않게 다시 시작되는 경우, 관련 조치 사항입니다. 이 문서에 제시된 방법 외에도 비디오 카드 드라이버를 업데이트하면 컴퓨터 다시 시작을 유발하는 많은 문제들을 해결할 수 있습니다. 1. 자동으로 다시 시작 옵션 비활성화하여 오류 메시지 보기오류 발생시 자동으로 컴퓨터가 다시 시작되는 것 방지합니다.시작 > 컴퓨터 > 속성 > 고급시스템설정 > 시작및복구 > 설정 > ‘자동으로 다시 시작’ 체크 해제 > 재부팅 2. 오류가 발생한 하드웨어 검사하드웨어 진단 툴을 이용하여 컴퓨터를 테스트합니다. 3. Windows Update 를 설치한 후 Windows 다시 시작되는경우1) 최신 Windows Update 제거시작 > 제어판 > 프로그램 제거 > 설치된 업데이트 보기 > 설치 날..
윈도우즈 2008 서버 텔넷 서버 / 텔넷 클라이언트 설치
2016. 1. 21.1. 명령줄을 사용하여 텔넷 서버 / 텔넷 클라이언트 설치 1) cmd 창 오픈 2) 하단 명령어 입력서버 : pkgmgr /iu:"TelnetServer" 클라이언트 : pkgmgr /iu:"TelnetClient" 2. Windows Server 2008에서 텔넷 서버 / 텔넷 클라이언트 설치 1) 서버 관리자 > 기능 > 기능추가2) 텔넷 서버 / 텔넷 클라이언트 선택 후 설치 자료출처https://technet.microsoft.com/ko-kr/library/cc770501%28v=ws.10%29.aspx https://technet.microsoft.com/ko-kr/library/cc771275%28v=ws.10%29.aspx
현재의 보안 설정 때문에 이 파일을 다운로드할 수 없습니다.
2016. 1. 16."현재의 보안 설정 때문에 이 파일을 다운로드할 수 없습니다."라는 경고가 뜨면서 파일을 다운로드할 수 없는 경우 아래와 같이 처리한다. 1. 시작 -> 관리도구 -> 서버관리자를 실행한 후 서버관리자에서 IE ESC 구성 클릭 2. IE ESC 보안강화구성에서 관리자에서 사용안함 클릭. 사용자의 경우 서버에서 파일을 다운로드할 필요도 없을뿐더러 보안도 취약해지므로 사용하지 않음 상태로 유지한다. 3. Internet Explorer의 인터넷 옵션에서 파일 다운로드를 가능하게 아래와 같이 설정해준다. 1)인터넷옵션 2) 사용자 지정수준 클릭 3) 파일 다운로드 사용 설정을 이렇게 변경해주면 Internet Explorer에서 파일 다운로드가 가능하게 된다. [자료출처] Windows Server 보안설정..
Invalid block tag: 'static', expected 'endblock'
2016. 1. 16.{% block content %} 안에 {% static 을 넣는 경우 아래와 같은 에러가 발생하는 경우가 있다. Invalid block tag: 'static', expected 'endblock' 1234567891011121314151617{% extends "base.html" %} {% block content %} histogram-hours {% endblock content %}Colored by Color Scriptercs import 구문에 준해서 생각하면 되는데,base 템플릿의 "import" 명령은 파생되는 템플릿에까지 영향을 미치지 않는다.따라서 {% load static %} 문을 상단에 넣어야 한다.