본문 바로가기

Coding/Python113

Django Admin 페이지 수정 정리 범위 : #1-24 Registering the Models in the admin ~ #1-25 Customizing the Django Admin Django에는 어드민 패널이 따로 존재한다.관리자가 쉽게 정보들을 수정, 추가, 삭제할 수 있게 하기 위함인데 이게 정말 유용하다.먼저 이 페이지를 수정하기 위해서는 admin.py를 수정해야한다.admin.py를 열고 최상단에 현재 앱의 모델을 추가해준다. from . import models 그다음 모델들을 위한 클래스를 작성한다. @admin.register(models.Image)class ImageAdmin(admin.ModelAdmin): pass @admin.register(models.Like)class LikeAdmin(admin.Mode.. 2018. 4. 20.
Django Model 정리 1.Django에서 모델을 정의하다보면 같은 내용을 반복해서 작성해야하는 경우가 있다.이럴때는 class를 하나 만들고 해당 클래스를 타 클래스들에서 상속받아서 사용하는게 편하다.하지만 그냥 생성만 하면 안되고 장고에게 이건 Abstract Class라는것을 알려줘야 한다.아래의 방법으로 알려주면 된다. from django.db import models class TimeStampedModel(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: abstract = True이런식으로 class Meta를 만들고 abstract .. 2018. 4. 19.
Django Custom User Model 만드는 방법 장고는 기본적으로 유저모델을 가지고 있다. 위처럼 /admin 으로 접속하여 확인해보면 기본적으로 유저모델이 존재함을 알 수 있다.이 모델을 인증관련해서 활용하게 되는 것이다.그런데 대부분의 경우 Default로 존재하는 유저모델이 아닌 자신의 프로젝트에 맞게커스텀하는 커스텀 유저모델이 필요할 때가 있다.따라서 이 포스팅에서는 장고 커스텀 유저 모델을 만드는 방법을 설명한다.먼저 아래의 명령어로 유저모델로 사용할 앱을 하나 생성해준다. django-admin startapp users 다음으로 모델을 생성해야 한다. /users/models.py를 다음과 같이 수정한다. from django.db import modelsfrom django.contrib.auth.models import Abstract.. 2018. 4. 18.
Django pipenv로 가상환경 구축 장고를 사용하기 전 가상환경 구축 시 기존에는 python3 -m venv 명령어를 통해 구축했었다.하지만 이제는 pipenv를 사용하여 구축하기로 했다.pipenv의 장점은 다음과 같다. (출처 : https://cjh5414.github.io/how-to-manage-python-project-with-pipenv/) 찾아보니 요즘은 pipenv를 더 많이 사용하는 추세인 것 같다.먼저 pipenv를 설치한다. pip install pipenv 다음으로 가상환경을 사용할 디렉토리를 생성한 후 해당 디렉토리에서 아래의 명령어를 입력한다. pipenv --three 참고로 나는 파이썬3 버전을 사용할 것이므로 --three 옵션을 주었다. 명령어를 실행하고 나면 위처럼 Pipfile이 생성된 것을 확인할.. 2018. 4. 18.
Django Restframework HTTP Method Override하는 방법 Django Rest framework를 사용하여 API서버를 구축했다.기본적으로 제공되는 기능도 충분히 훌륭하지만 좀 더 세부적인 컨트롤을 위해서는Function을 Override하여 나의 서비스에 맞게 수정해주는 작업이 필요하다.Rest framework는 말그대로 Restful 한 API서버이므로 모든 작업은HTTP Method를 통한다.GET, PUT, DELETE 등의 HTTP Method들에 따라 하는 작업이 다르다.나같은 경우에는 어플리케이션에서 익명 게시판 기능이 존재하는데,사용자가 입력한 패스워드와 데이터베이스에 저장된 패스워드가 일치할 때만 글을 삭제하게 만들어줘야 했다.따라서 ViewSet관련 글들을 찾아보다가 기본적으로 제공해주는 Method가 여러가지 있는걸 발견했다. http:/.. 2018. 3. 16.
장고(Django) Apache랑 연동하는 방법 기존에 학식봇을 포함하여 최근 어플을 제작하고 있는데 뒷단을 장고로 사용하고 있다.Django Rest framework를 사용하면 크게 사용자가 건드릴 필요 없이 API서버를 구축할 수 있다.정말 편한 라이브러리라서 앞으로의 API서버 구축은 모두 장고로 할 것 같다.튼, 여러모로 장고를 많이 사용하고 있었는데 SSL를 적용해야해서 관련 문서를 찾고 있었다.그런데 대부분의 예제들이 모두 장고를 아파치나 Nginx와 연동하여 적용시키고 있었다.왜 그랬는지 몰랐는데 특정 블로그에서 그 이유를 찾았다.나는 대부분 runserver + nohup으로 백그라운드에서 서버가 돌도록 구동시키고 있었다.그런데 runserver는 개발시에만 사용하고 실 서비스할때에는 아파치등의 서버에 올려서작동시키라고 장고팀에서도 권.. 2018. 2. 19.