■ JITHub 개발일지 21일차
□ TIL(Today I Learned) ::
Django User Model, CRUD, Allauth
1. User Model 확장하기
※ 문제
- 프로젝트에 사용될 폴더를 생성하고, 편집기에서 생성한 폴더를 열어주세요.
- 파이썬 가상 환경을 생성하고 활성화해주세요.
- Django 패키지를 설치해주세요.
- spartatest라는 django 프로젝트를 생성해주세요
- customuser라는 앱을 생성해주세요
- settings.py에 앱을 등록해주세요.
- Django의 User를 기반으로 만든 CustomModel라는 클래스를 만들어주세요.
- 조건: 테이블 이름은 custom_user
- Django의 User 모델에서 아래의 필드를 추가해주세요.
- address (TextField, max_length=500, blank=True)
- bio (TextField, max_length=500, blank=True)
- Django에게 기본 인증과정 (AUTH_USER_MODEL)을 customuser 앱에 작성한 CustomModel로 사용하겠다! 라고 알려주세요.
- 힌트: settings.py
- 데이터베이스에 변경사항을 반영하고 적용해주세요.
- 관리자 계정을 만들어주세요.
- Admin 사이트에서 CustomModel를 볼 수 있도록 적용해주세요.
- 서버를 켜고 CustomModels에서 아래와 같이 address와 bio를 볼 수 있다면 성공입니다.
※ 풀이
1) 파이썬 가상 환경 생성 및 활성화
# 가상환경 생성
python -m venv venv
# 가상환경 활성화
source venv/bin/activate
2) Django 패키지 설치
pip install django
3) django 프로젝트 생성 : 이름 spartatest
django-admin startproject spartatest .
4) 앱 생성 : 이름 customuser
python manage.py startapp customuser
5) settings.py에 앱 등록
# settings.py
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'customuser',
]
6) Django의 User를 기반으로 만든 클래스 CustomModel 생성(힌트: class CustomModel(AbstractUser))
▶ 조건
- 테이블 이름은 custom_user
- address (TextField, max_length=500, blank=True)
- bio (TextField, max_length=500, blank=True)
# models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.conf import settings
# Create your models here.
class CustomModel(AbstractUser):
class Meta:
db_table = "custom_user"
address = models.TextField(max_length=500, blank=True)
bio= models.TextField(max_length=500, blank=True)
7) Django에게 기본 인증과정 (AUTH_USER_MODEL)을 customuser 앱에 작성한 CustomModel로 사용하겠다! 라고 알려주기(힌트: settings.py)
# settings.py
# ~
AUTH_USER_MODEL = 'customuser.CustomModel'
- 데이터베이스에 변경사항 반영 및 적용
# 데이터베이스 마이그레이션 생성
python manage.py makemigrations
# 데이터베이스 적용
python manage.py migrate
- 관리자 계정 생성
python manage.py createsuperuser
# 이름, 메일, 패스워드 입력
- Admin 사이트에서 CustomModel를 볼 수 있도록 적용
# admin.py
from django.contrib import admin
from .models import CustomModel
# Register your models here.
admin.site.register(CustomModel)
- 서버를 켜고 CustomModels에서 아래와 같이 address와 bio를 볼 수 있는지 확인하기
python manage.py runserver
▷ 결과
윈도우, 맥 엔터방식 다른 점을 보완
git config --global core.autocrlf input (맥)
git config --global core.autocrlf true
깃 커밋시 이름, 이메일주소 (깃허브 계정과 다름)
git config --global user.name <이름>
git config --global user.email <이메일>
깃 main을 디폴트로 만들기
git config --global init.defaultBranch main
git config --get init.defaultBranch main
□ TIF(Today I Felt) ::
- Django를 활용해서 CRUD를 구현해보았다.
- Django allauth 패키지를 사용하여 인스타 클론의 유저관리페이지를 제작하고 있다.
- 팀장님과 팀원들의 도움으로 생각보다 수월하게 진행될 것 같다.
- 깃을 활용한 첫 프로젝트이다. 깃허브를 더 자연스럽게 사용할 수 있으면 좋겠다.
'DEV > Web 개발' 카테고리의 다른 글
파이썬 웹 프로그래밍 :: 10월 첫째주 WIL #05 (0) | 2022.10.04 |
---|---|
Web 개발 :: 파이썬 django 인스타그램 클론 코딩, aullauth _TIL#23 (1) | 2022.10.04 |
Web 개발 :: 파이썬 django 모델 _TIL#20 (0) | 2022.09.27 |
Web 개발 :: 파이썬 django, MTV, 뷰, 템플릿 등 _TIL#19 (0) | 2022.09.27 |
파이썬 웹 프로그래밍 :: 9월 넷째주 WIL #04 (0) | 2022.09.26 |
댓글