Jupyter notebook 실행시 디폴트 경로 변경

윈도우에 anaconda를 설치후 notebook을 실행하면 실행경로가 윈도우의 사용자 계정 아래에 실행되는데 루트에서 상위 경로로 접근할수가 없어서 root 경로를 변경해야 한다. root 경로를 변경하는 방법은 사용자 계정아래에 .jupyter 폴더를 찾아간다. 설치만 하면 파일이 없을수 있는데 아래의 명령으로 config 파일을 생성한다. jupyter notebook --generate-config jupyter_notebook_config.py 파일이 생성되는데, 파일을 열어서 notebook_dir 를 찾는다. 주석으로 되어있는 경로를 주석해제하고 아래와 같이 변경한다. c.NotebookApp.notebook_dir = u'C:\\bigdata' 다시 노트북을 실행하면 C 드라이브의 bigdata폴더가 루트가 된다.

django admin 에 action 추가하기

django admin에서 데이터를 삭제하는 기능밖에 없는데,  다른 추가기능을 하고 싶으면 actions에 기능을 추가한다. admin 필드에 함수를 생성하고 아래와 같이 actions 목록에 추가한다. 함수에는 modeladmin, request, queryset 파라미터가 들어간다. queryset에 모델에 대한 쿼리셋 결과가 들어간다. 아래 코드는 수정하는 모델에 필드값을 U로 업데이트하는 내용이다. short_description 에는 admin에서 콤보목록에 보이는 값을 설정한다. def make_used(modeladmin, request, queryset):     queryset.update(use_flag='U') make_used.short_description = "Make seller's user_flag = USE" @admin.register(Seller) class SellerAdmin(admin.ModelAdmin):     list_display = ['trade_code', 'trade_name', 'use_flag',                     'email', 'createdby', 'updatedby', 'username', ]     actions = [make_used]

django admin 에서 query절 변경하기

admin 을 작성할때 특정한 데이터만 보고 싶거나 쿼리를 수정하고 싶을 때가 있다.  예를 들면 로그인 사용자가 등록한 데이터만 조회를 하고 싶을 때가 있는데 이럴 때는 get_queryset 함수를 재정의하면 된다. get_queryset에는 request 파라미터만 들어간다.  부모의 쿼리셋을 받은 다음 qs.filter를 통해서 조건을 추가하면 된다.  샘플 코드는 아래와 같다. 추가로 하나더 모델정보를 저장할때 필드의 값을 모두 채워서 저장을 하는데 마찬가지로 특정값은 기본값으로 지정하고 싶을 때 save_model 을 재정의한다. 데이터 모델은 obj 변수에 값을 지정하고 save() 함수를 호출하면 된다.  @admin.register(Item) class ItemAdmin(admin.ModelAdmin):     list_display = ['id', 'seller', 'item_code', 'item_name', 'price', ]     readonly_fields = ('seller',)     def get_queryset(self, request):         qs = super(ItemAdmin, self).get_queryset(request)         if request.user.is_superuser:             return qs         return qs.filter(seller__username=request.user)     def save_model(self, request, obj, form, change):         seller = Seller.object...

django에서 i18n 지원 방법

django에서 i18n 지원 방법 django 프로젝트 공식 문서를 참고하자. https://docs.djangoproject.com/en/1.9/topics/i18n/translation/#how-django-discovers-language-preference i18n을 사용하려면 gettext를 설치해야 하는데 윈도우 용은 아래 링크를 클릭해서 설치를 한다. http://mlocati.github.io/gettext-iconv-windows/ settings.py 에서 MIDDLEWARE_CLASSES 에 django.middleware.locale.LocaleMiddleware 를 추가한다. MIDDLEWARE_CLASSES = [ ...     'django.middleware.locale.LocaleMiddleware',     'django.middleware.common.CommonMiddleware', ... ] ugettext_lazy 를 함수를 import한다. from django.utils.translation import ugettext_lazy as _ 언어설정 LANGUAGE_CODE = 'ko-KR' 언어목록 LANGUAGES = [   ('ko', _('Korean')),   ('en', _('English')), ] 언어 파일 경로 LOCALE_PATHS = (     os.path.join(BASE_DIR, 'locale'), ) settings.py에서 위와 같이 설정 후, python manage.py makemessages 명령을 내리면 언어파일 경로에 각 언어별로 폴더가 생성된다. django.po 파일이 생성되면 파일을 열어서 수정한다. msgid에는 소스에 있는 문구가 들어있고 msgstr에 ...

Linux(Ubuntu 14.04)에서 Postgre 설치

1. Postgre 설치 커맨드창에서 아래와 같이 명령을 입력한다. sudo apt-get install postgresql Linux 에서 psycopg2 설치(django에서 DB API 어댑터설치) http://initd.org/psycopg/docs/install.html#install-from-a-package 커맨드창에서 아래와 같이 명령을 입력한다. sudo apt-get install python-psycopg2   또는 다음과 같이 pip로 설치가 가능하다. pip install psycopg2   현재 지원되는 버전은 다음과 같다. Python 2 versions from 2.5 to 2.7 Python 3 versions from 3.1 to 3.4 PostgreSQL versions from 7.4 to 9.4 참고링크) https://help.ubuntu.com/community/PostgreSQL postgres 가 기본 데이터베이스로 사용되고 관리계정으로  postgres가 사용된다. django에서 기본적으로 패스워드 설정이 안되어있으면 접속이 안되게 되어 있어 패스워드 설정도 해야한다. postgres계정으로 psql을 실행한다. $ sudo -u postgres psql postgres   postgres계정의 패스워드 설정(psql명령) \password postgres   Database 생성 $ sudo -u postgres createdb mydb  또는 postgres로 접속이 되었다면 createdb 명령으로도 생성이 된다. postgres 계정으로 접속하기 $ sudo -i -u postgres postgre 서비스 시작하기 sudo service postgresql start 서비스 재시작시 service postgresql restart   2. 장고에서 db 설...

django 에서 404, 500 에러 처리하기

django 에서 404, 500에러가 발생시 Debug=True로 하면 웹서버의 정보가 보이는데 실서버에 이관시에는 DEBUG=False로 해야 한다. 그런데 에러가 발생시 서버에서 발생하는 에러 페이지를 보여주기 때문에 우리가 만든 웹페이지를 보여주기 위해서는 아래와 같이 handler를 등록해주면 내가 보여주고 싶은 페이지를 볼 수 있다. 아래와 같이 설정을 한다. setting.py DEBUG = False urls 파일에서 view를 만들고 보여줄 페이지 뷰를 설정한다. urls.py handler404 = 'kid.views.page_not_found_view' handler500 = 'kid.views.page_not_found_view' views 파일에서 html를 render한다. views.py def page_not_found_view(request):     return render(request,'page_not_found.html',RequestContext(request))

django 에서 static file이 나오지 않을때

django 에서 static file이 나오지 않을때 아래와 같이 설정하면 된다. wsgi.py 를 반드시 설정하자. https://devcenter.heroku.com/articles/django-assets Django settings for static assets can be a bit difficult to configure and debug. However, if you just add the following settings to your  settings.py , everything should work exactly as expected: settings.py # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.7/howto/static-files/ BASE_DIR = os.path.dirname(os.path.abspath(__file__)) STATIC_ROOT = ' staticfiles ' STATIC_URL = ' /static/ ' STATICFILES_DIRS = ( os.path.join(BASE_DIR, ' static ' ), ) Django won’t automatically create the target directory that  collectstatic  uses, so we recommend adding a dummy file to your repository,  as seen here . Whitenoise By default, Django does not support serving static files in production. We recommend using the WhiteNoise  project for best-practice serving of static assets in production. Inst...