Django

django 프로젝트 시작하는 법

우주알 2023. 4. 10. 00:03
django는 웹 프레임워크, 웹 어플리케이션을 빠르고 쉽게 개발할 수 있도록 도와준다. MTV(Model-Template-View) 아키텍처 패턴을 기반으로 하며, 다양한 기능을 내장하고 있어서 개발자가 직접 구현할 필요가 없는 기능들도 제공해준다.

아래는 django로 프로젝트를 시작하고자 할 때, 기본적으로 세팅하는 방법.

1. 가상 환경 만들기

    1. 폴더를 vs코드로 열고, <ctrl+`>으로 터미널을 연다.
    2. `python -m venv venv` (venv라는 이름의 가상환경 만들어-의 의미)

 

2. 가상 환경 활성화 후, 필요한 패키지를 설치

    1. `source venv/Scripts/activate` (가상 환경 활성화)
    2. `pip install django==3.2.18` (필요한 패키지 설치. 예시는 장고 버전 3.2.18. 이 이외에도 필요한 패키지가 있다면 설치한다)
    3. `pip freeze > requirements.txt` (설치한 패키지를 requirements.txt 파일로 만들어줘서 이후 사용할 수 있다.)

 

※ 가상환경과 프로젝트가 같은 디렉토리 안에 있기만 하면 된다.

 

3. 프로젝트 생성 (프로젝트는 가상 환경을 나와서 생성한다.)

  • `django-admin startproject mypjt .` (mypjt라는 이름의 프로젝트 생성해줘. 마지막에 예시와 같이 점을 붙이면 이중 폴더가 생성되지 않고, 붙이지 않으면 이중 폴더가 생성)

 

4. 앱 생성 (앱 생성 시, 프로젝트의 settings.py에 앱 등록 필필필수 ★)

 

   1. `python manage.py startapp articles` (articles라는 이름의 앱 생성해줘-의 의미. 앱 이름은 복수형을 권장한다고 한다. 왜지)

   2. 만약 user 모델을 사용하고 싶은 프로젝트라면 첫 migrate 전에 custom user를 사용할 수 있도록 세팅해두는 것이 좋다.

  • mypjt에서 url 분기를 한다.(include함수로 url 넘겨주기. app_name도 설정.)
  • accounts의 models.py에서 User모델을 커스텀 할 수 있게 세팅해둔다.

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):

    pass

 

  • settings.py에 AUTH_USER_MODEL="accounts.User" 라고 명시해둔다.(원래 아무것도 쓰지 않았을 때 초기값은 AUTH_USER_MODEL="auth.User" )
  • 기본 User 모델이 아니기 때문에 admin.py에 Custom User모델을 등록해야 admin site에서 볼 수 있고, 사이트 내에서 crud가 가능하다. 그래서 admin.py에서 아래와 같이 작성해서 등록해야한다.


from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User
# Register your models here.


admin.site.register(User,UserAdmin)

 

 

  • 등록 후 admin 사이트에서 확인하거나, crud해야 할 때는 우선 admin 사이트에 접속하기 위한 id와 pw가 필요하다. 그래서 터미널에서 python manage.py createsuperuser 명령어를 실행하고 id와 pw 를 생성한다. (e메일은 그냥 enter로 건너뛰어도 상관없고, 비밀번호를 간단하게 쳐서 too common하다는 메시지가 나와도 그냥 y하면 됨.)
    그리고 서버를 실행시켜서 admin 페이지로 가서 로그인하면 이용할 수 있다.