2025.01.14 장고 초기 로드맵

SMALL

1. 작업 디렉토리 만들기
mkdir [프로젝트_폴더명]
cd [프로젝트_폴더명]


2. 가상환경 설정 (프로젝트 격리를 위해)
python -m venv venv

깃배쉬 (Windows): source venv/Scripts/activate
맥 (Mac) / 리눅스: source venv/bin/activate

가상환경 활성화 하고 
pip install -r requirements.txt

pip install django

pip freeze -> requirments.txt

끄는법: deactivate

깃이그노어 만들고 밴브폴더 적기


3. 프로젝트 생성
django-admin startproject [프로젝트명 or config] .
# 마지막 점(.)은 현재 디렉토리에 생성한다는 의미


4. 앱 생성
python manage.py startapp [앱이름]


5. 앱 폴더 내부에 urls.py 파일 만들기
urlpatterns = []


6. config 폴더의 urls.py에 app 경로 추가
from django.contrib import admin
from django.urls import path, include 

urlpatterns = [
path("admin/", admin.site.urls),
path("accounts/". include("accounts.urls")),
]


7. settings.py에 앱 등록
INSTALLED_APPS = [
    'django.contrib.admin',
    ...
    '앱이름',
]


8. config 폴더 내 settings.py에서 AUTH_USER_MODEL 정의하기
AUTH_USER_MODEL = "accounts.User"


9. 앱 내 models.py에서 custom user 모델 작성
from django. contrib.auth.models from AbstractUser

class User(AbstractUser):
pass


10. 앱 모델 마그레, 마그렛 하기
python manage.py makemigrations accounts
python manage.py migrate accounts


11. 디장고가 제공하는 기본 모델 마그렛 하기
python manage.py migrate accounts


12. admin 계정 만들기
python manage.py createsuperuser



◆ 폴더 구조
[프로젝트_폴더명]/                # 최상위 디렉토리
    ├── venv/                    # 가상환경
    ├── [프로젝트명]/          # 프로젝트 설정 디렉토리    
    │   ├── __init__.py         # Python 패키지로 인식하게 하는 파일
    │   ├── settings.py        # 프로젝트 설정 파일 (DB, 앱, 미들웨어 등)
    │   ├── urls.py             # 프로젝트의 메인 URL 설정
    │   └── wsgi.py            # 웹 서버 연동을 위한 설정
    ├── [앱이름]/                # 독립적인 기능을 가진 앱 디렉토리
    │   ├── migrations/       # 데이터베이스 변경사항 기록
    │   ├── __init__.py         # Python 패키지로 인식
    │   ├── admin.py          # 관리자 페이지 설정
    │   ├── apps.py            # 앱의 설정 클래스
    │   ├── models.py         # 데이터베이스 모델 정의
    │   ├── tests.py            # 테스트 코드 작성
    │   └── views.py           # 뷰 함수/클래스 정의
    └── manage.py              # Django 프로젝트 관리 명령어 도구


이름 정할 때 주의사항:
파이썬 예약어 피하기(list, str 등)
특수문자 사용하지 않기
영어 소문자 사용 권장
의미있는 이름 사용 (예: blog, users, posts)


python manage.py runserver
python manage.py makemigrations
python manage.py migrate

LIST