파이썬 Python/장고 Django
아나콘다 가상환경에서 장고 임포트 에러 ImportError: Couldn't import Django
2020. 4. 4.아나콘다 가상환경을 활성화시킨 상황에서 다음과 같이 Django 설치 및 프로젝트를 시작하였다. (tfquantum) founder@hilbert:~$ pip install Django==3.0.5 Defaulting to user installation because normal site-packages is not writeable Collecting Django==3.0.5 Downloading Django-3.0.5-py3-none-any.whl (7.5 MB) |████████████████████████████████| 7.5 MB 2.7 MB/s Collecting sqlparse>=0.2.2 Downloading sqlparse-0.3.1-py2.py3-none-any.whl (40 kB)..
우분투 18.04 장고 설치하기 How to Install Django on Ubuntu 18.04 LTS
2018. 6. 16.아나콘다를 통해 설치되는 버전은 django 2.0.5 이다. 금일 기준 최신 공식버전은 2.0.6 이다 (https://www.djangoproject.com/download/).123456789101112131415161718192021222324252627282930313233343536(redsparrow) fukaerii@server:~$ conda install -c anaconda djangoSolving environment: done ## Package Plan ## environment location: /home/fukaerii/anaconda3/envs/redsparrow added / updated specs: - django The following packages will be..
django-leaflet & django-geojson을 활용한 웹매핑 Easy Webmapping with django-leaflet & django-geojson
2017. 6. 7.django-leaflet & django-geojson을 활용한 웹매핑 Easy Webmapping with django-leaflet & django-geojson 1. django-leaflet 설치 django-leaflet을 통해 장고 프로젝트에서 Leaflet 사용이 가능하다. 지리적 정보에 대한 수정폼 및 맵을 표시하는 템플릿태그 등을 포함한다. Documentaion https://django-leaflet.readthedocs.io/en/latest/installation.html1) Installation 1234567891011(envalicia) root@localhost:~/vikander# pip install django-leafletCollecting django-leafle..
Django, Ngrok를 활용한 페이스북 메신저 봇 만들기 How to build a Facebook Messenger bot using Django, Ngrok
2017. 6. 3.Django, Ngrok를 활용한 페이스북 메신저 봇 만들기How to build a Facebook Messenger bot using Django, Ngrok 1. Facebook App 생성먼저 페이스북앱을 생성한다. https://developers.facebook.com/ > My Apps > Add a New App > Product Setup > Messenger > Get Started다음으로 페이스북 페이지를 생성하고, Page Access Token 을 아래와 같이 생성한다. 토큰 생성이 필요한 페이지를 선택하면 다음과 같이 Page Access Token 이 생성된다. 2. Django 서버 설치이 튜토리얼의 목적은 백엔드 서버로서의 장고의 역할에 대한 것이다.페이스북 메신저 봇 앱을..
장고 소셜 로그인 구현하기 Python Social Auth in Django - Twitter, Facebook,Google+, GitHub
2017. 5. 29.Python Social Auth - Djangohttps://github.com/python-social-auth/social-app-django Project documentation http://python-social-auth.readthedocs.io/en/latest/ 1. Installation12345678910# pip install social-auth-app-djangoRequirement already satisfied: social-auth-app-django in /root/anaconda/envs/envalicia/lib/python3.5/site-packagesRequirement already satisfied: social-auth-core>=1.2.0 in /root/a..
Django Debug Toolbar 설치 + uWSGI 패널 추가하기
2017. 5. 20.Django Debug Toolbar 설치 + uWSGI 패널 추가하기 1. Getting Code pip 를 통해 Django Debug Toolbar 를 설치한다. 1# pip install django-debug-toolbarcs 2. Prerequisites INSTALLED_APPS 에 'django.contrib.staticfile' 가 포함되어 있는지 확인한다. settings.py123456# Application definitionINSTALLED_APPS = [ # ... 'django.contrib.staticfiles', # ...]Colored by Color Scriptercs 3. URLConf Debug Toolbar’s URLs을 프로젝트 URLs에 포함시킨다. urls.p..
pip install -U setuptools fails in fresh conda environment - Cannot remove entries from nonexistent file
2017. 5. 20.pip install -U setuptools fails in fresh conda environment setuptools 를 업그레이드하는 경우 Cannot remove entries from nonexistent file 에러가 발생하는 경우에는 다음과 같이 처리한다. 1234567891011# pip install -U pip setuptoolsRequirement already up-to-date: pip in /root/anaconda/envs/envalicia/lib/python3.5/site-packagesCollecting setuptools Using cached setuptools-35.0.2-py2.py3-none-any.whlRequirement already up-to-date:..
장고 임포트(import) 순서 및 명시적 성격의 상대 임포트
2017. 5. 9.장고 임포트(import) 순서 및 명시적 성격의 상대 임포트 1. PEP 8 에서 제안하는 임포트(import) 순서 pep 8은 임포트할 때 ㄷ음과 같은 순서로 그룹지을 것을 제안하고 있다.1) 표준 라이브러리 임포트2) 연관 외부 라이브러리 임포트3) 로컬 애플리케이션 또는 라이브러리에 한정된 임포트 다음과 같이 임포트 문을 구성할 수 있다. 1234567891011121314# 표준 라이브러리 임포트from __future__ import absolute_importfrom math import sqrtfrom os.path import abspath # 코어 장고 임포트from django.db import modelsfrom django.utils.translation import ugette..
장고 사이트에 reCAPTCHA 넣기 Add reCAPTCHA to Django site
2017. 4. 10.장고 사이트에 reCAPTCHA 넣기Add reCAPTCHA to Django site 각종 봇과 스팸으로부터 사이트를 보호하기 위해 구글의 reCATCHA 를 많이 사용하는데요. 본 포스팅에서는 장고로 만들어진 사이트에 이를 손쉽게 적용해보는 방법을 살펴겠습니다. 1. Requirements1) reCAPTCHA > Get reCAPTCHA 클릭하여 다음과 같이 키를 획득한다. 사이트 등록이 끝나면 2개의 키를 받게 되는데 Site key와 Secret key가 바로 그것이다. 여기서 Site key(사이트와 사용자간)는 원하는 페이지에 렌더링하기 위해 사용되고, Secret key(사이트와 구글간 통신)는 settings.py 모듈에 등록하여 구글과 사이트 간의 통신을 위해 사용된다. 2) setti..
Django와 Handsontable.js를 이용한 엑셀풍의 입력화면 만들기
2017. 3. 30.Django와 Handsontable.js를 이용한 엑셀풍의 입력화면 만들기 Django로 엑셀 풍의 입력 화면을 만들어보자. 이를 위해서 handsontable 을 이용한다. Handsontable은 엑셀의 외관을 가진 JavaScript/HTML5 스프레드시트 컴포넌트이다. 본 포스팅은 Hatena 블로거 thinkAmi님의 Django + Handsontable.jsを使って、Excel風な入力画面を作ってみた (http://thinkami.hatenablog.com/entry/2016/12/11/000415)을 참고로 작성되었다. https://github.com/handsontable/handsontable 1. 환경 본 포스팅의 환경은 다음과 같다. Ubuntu 14.04 + Python 3.5.2..
Django Channels로 채팅룸 만들기
2017. 2. 21.Django Channels로 채팅룸 만들기 먼저 아래 그림을 보자. 아래는 전형적인 requests와 responses의 도해이다. 브라우저는 request를 생성하고, Django는 브라우저로 돌려보낼 response를 담고 있는 view를 호출한다. 반면 Django Channels은 request/response cycle을 채널을 관통하는 메시지(message)라는 컨셉으로 대체한다. 채널은 Django로 하여금 전형적인 HTTP views 와 유사한 방식으로 웹소켓을 지원한다. HTTP request는 여전히 같은 방식으로 작동하지만 채널을 경유하게 된다. 결론적으로 Channels하에서 Django는 아래와 같은 구조를 띠게 된다. 1. Install Channels & Configure I..
django 자동완성 구현하기 django-autocomplete-light
2016. 12. 26.django 자동완성 구현하기 django-autocomplete-light django-autocomplete-light 설치 documentation http://django-autocomplete-light.readthedocs.io/en/master/ 타이틀이나 태그 등 입력시 텍스트를 자동 완성해주는 django 패키지 django-autocomplete-light 3.2.1 를 설치해보자.DAL(django-autocomplete-light)는 Python 2.7, 3.4, Django 1.8+ 이상에서 작동하며, 태그입력시 적용할려면 django-taggit 이 먼저 설치되어 있어야 한다. 다음과 같이 설치한다.12345678910# pip install django-autocomplete-..
장고 내장 필터(소수점 표시) Built-in filter reference
2016. 12. 17.실수 표시 필터 인수없이 사용하는 경우 반올림하여 소수점 한자리까지 표시된다. 단, 소수파트가 0 인 경우 정수파트만 표시된다. 1234value Template Output34.23234 {{ value|floatformat }} 34.234.00000 {{ value|floatformat }} 3434.26000 {{ value|floatformat }} 34.3cs 정수가 인수로 사용된 경우 해당 소수점 자리수만큼 표시된다. 1234value Template Output34.23234 {{ value|floatformat:3 }} 34.23234.00000 {{ value|floatformat:3 }} 34.00034.26000 {{ value|floatformat:3 }} 34.260cs 특히 0..
Haystack 설치 및 실행하기 Getting Started with Haystack
2016. 12. 15.Haystack 설치 및 실행하기 Getting Started with Haystack 실습용으로 아래와 같이 간단한 노트 앱에 검색 기능을 붙여보자. myapp/models.py 1234567891011from django.contrib.auth.models import Userfrom django.db import models class Note(models.Model): userid = models.ForeignKey(User, related_name='user_note') pub_date = models.DateTimeField() title = models.CharField(max_length=200) body = models.TextField() def __unicode__(self): ret..
Django queryset filter datefield not empty
2016. 10. 15.특정 기간내에 유료회원으로 등록한 유저를 검색하는 쿼리에서 유료회원등록일이 Null 값인 회원이 검색되어 나오는 경우에는 다음과 같이 처리한다.123qs = Member.objects.exclude(reg_date__gt=end_dt).exclude(reg_date__lt=start_dt)\ .filter(~Q(reg_date__isnull=True)) Colored by Color Scriptercs Null 값을 포함하고자 하는 경우에는 다음과 같이 처리한다. 123456 qs = Member.objects.exclude(reg_date__gt=end_dt).exclude(reg_date__lt=start_dt)\ .filter(Q(reg_date__isnull=True)) qs = Member.ob..
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
장고 파일 업로드 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..
우분투 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-..
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']}),..
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..
장고 정적파일 관리 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..
장고 마키나 설치하기 (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/