오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

Web Programming/Django 25

[Django] Django에서 DB 엑셀 파일 생성하는 방법

장고 관련해서 admin에서나 일반 응답으로 csv로 export하는 글은 많지만 csv 파일에 접근하는 사람마다 엑셀 설정이 달라 한국어과 관련된 인코딩으로 인해 파일이 깨져서 보이거나 하는 문제가 발생한다. 그 때문에 파일을 열고 일일이 엑셀 설정을 바꿔야 정상적으로 읽히는 경우가 많다. 이번 글에서는 장고에서 .xls 파일로 export 하는 방법에 대해서 알아보도록 하겠다. 1. xlwt 받기 먼저 아래의 모듈을 받아줘야 한다. pypi.org/project/xlwt/ xlwt Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 XLS files, on any platform, with Python 2.6, 2...

[Django] django apache (CentOS) 배포

본격적인 설명에 앞서 아직 왜 장고와 아파치를 같이 배포해야되는지 모르겠다면 아래의 글을 한번 읽어보도록 하자 cocook.tistory.com/87 [Web] WAS와 Web Server 차이 장고 배포와 관련된 글을 보면 WS(Web Server, 웹서버)와 WAS(Web Application Server, 웹어플리케이션서버)에 대해서 많이 볼 수 있다. 이름도 비슷해서 예전에는 사람마다 같은 걸 다르게 부르는 건가 싶었 cocook.tistory.com 이번 포스트에서는 WAS인 장고와 WS인 아파치를 배포 과정에 대해 설명하도록 하겠다. 1. Python 3.6 설치 먼저 yum 명령어를 이용해 python3.6을 받아주도록 하자. 다른 방법도 있어지만 취소됐다고 한다. sudo yum insta..

[Django] 장고 migrations 명령어

마이그레이션은 어렵다.. 모델 사이의 관계나 필드의 속성을 바꿀 때 또는 local에서 배포 환경에서 매번 마이그레이션이 문제가 될 때가 꽤 있다. 이번 포스트에서는 마이그레이션과 관련된 명령어를 정리하겠다. 1. 마이그레이션 파일 생성하기 python manage.py makemigrations 2. 데이터 베이스에 마이그레이트하기 python manage.py migrate python manage.py migrate --settings=config.local.settings python manage.py migrate --settings=config.deploy.settings 3. 어떤 마이그레이션이 적용되었는지 확인하기 python manage.py showmigrations 4. 특정 앱의 마..

[Django] Template Tags and Filters (Filter 편)

장고는 매우 잘 갖추어진 프레임워크이다. 이미 구현되어있는 부분들이 많아서 개발자가 직접 구현하지 않고 그대로 사용하면 되는 부분들이 많다. 이러한 여러 기능들 중에 가장 유용한 기능을 하나 뽑으라면 난 Django Template을 꼽고 싶다. 오늘은 Django Template 중 Tag와 Filter에 대해 알아보도록 하겠다. 먼저 상대적으로 자유도가 낮은 filter를 다루고 이후에 Tag를 다루도록 하겠다. 1. Filter Filter는 template에서 Variable안에서 사용하는 툴로서 아래와 같이 사용한다. {{variable|filter}} variable과 적용하려는 filter를 "|" 로 구분해서 사용하면 variable에 해당 filter가 적용되서 웹페이지 상에 표현된다. ..

[Django] Trouble Shooting

1. The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS 한번에 보낼 수 있는 GET/POST 파라미터 개수가 셋팅해 놓은 값보다 많이 요청했음(default 1000개) config->settings.py 으로 가서 아래 변수를 선언해준다. DATA_UPLOAD_MAX_NUMBER_FIELDS = 4000 2. MultipleObjectsReturned at /main/ get() returned more than one Stations -- it returned more than 20! modelClass.objects.get(id=id)와 같은 방식으로 쿼리셋을 날렸을 때 반환되는 클래스가 여러개일때 발생..

[Django] Admin 등록 방법

Django에서는 admin 페이지를 개발자가 손쉽게 만들 수 있도록 제공해준다. 각 app 폴더마다 admin.py 파일이 있으며 admin.ModelAdmin 클래스를 상속받아 클래스를 상속시켜주면 관리자 페이지에서 해당 값들을 확인할 수 있다. from django.contrib import admin from . import models # Register your models here. @admin.register(models.Users) class UserAdmin(admin.ModelAdmin): list_display = ('username', 'name', 'areaId')

[Django] 프로젝트에 등록되어 있지 않은 파일에서 장고 사용하기

프로젝트에 startapps 명령어로 생성되지 않은 파일에서 장고에 등록된 모델이나 함수를 사용할 때 다음과 같은 에러가 발생한다. django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 이를 해결하기 위해선 환경을 장고에 맞춰주기 위해서 다음과 같은 코드를 from user.models import model 과 같은 파일 위쪽에 선언해..

[Django] 장고 비밀키 관리하기

종종 장고 secret키 관리가 어려울 때가 있다. github에 푸쉬할 때 settings.py 내부에 secret키가 있어 아래와 같은 경고 메일이 날라오기도 한다. Django Secret Key exposed on GitHub 아래의 글은 이를 해결하기 위한 방법을 정리해둔 글이다. 1. 동적 변수 할당 이거 나중에 작성할게요~ 2. django-dotenv 사용하기 django-dotenv는 일단 먼저 django-dotenv를 pip나 pipenv를 이용해 다운받아준다. pip install django-dotenv # 또는 pipenv install django-dotenv manage.py가 있는 디렉토리에 .env 파일을 만들어 준다. 그리고 .gitignore에 .env를 추가해준다.,..