Web Programming/Django

[Django REST framework] (1) ν”„λ‘œμ νŠΈ 생성과 μ„€μ •

jison 2024. 7. 12. 17:48

κ°€μƒν™˜κ²½ μ„€μ •, μ§„μž…

DjangoλŠ” Python 기반의 μ›Ή ν”„λ ˆμž„μ›Œν¬μ΄κ³  μ—¬νƒ€μ˜ Python ν”„λ‘œμ νŠΈμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ κ°€μƒν™˜κ²½μ„ μ΄μš©ν•΄ Python 버전, νŒ¨ν‚€μ§€ 버전 등을 관리할 수 μžˆλ‹€. venv λͺ¨λ“ˆμ„ μ΄μš©ν•΄ venvλΌλŠ” μ΄λ¦„μ˜ κ°€μƒν™˜κ²½μ„ μƒμ„±ν•˜μž. κ°€μƒν™˜κ²½ λ””λ ‰ν„°λ¦¬μ—λŠ” Python 인터프리터, μ„€μΉ˜ν•œ νŒ¨ν‚€μ§€ 등이 μ €μž₯λœλ‹€.

python3 -m venv venv
source venv/bin/activate

μ΄λ•Œ μƒμ„±ν•˜λŠ” κ°€μƒν™˜κ²½ λ””λ ‰ν„°λ¦¬μ˜ 이름이 λ°˜λ“œμ‹œ venv일 ν•„μš”λŠ” μ—†μœΌλ©°, ν”„λ‘œμ νŠΈ 디렉터리 내에 μœ„μΉ˜ν•  ν•„μš”λ„ μ—†λ‹€. λ‹€μŒκ³Ό 같은 λ°©μ‹μœΌλ‘œ ν™ˆ 디렉터리 밑에 κ°€μƒν™˜κ²½ 디렉터리λ₯Ό 두고 κ΄€λ¦¬ν•˜λŠ” 것도 κ°€λŠ₯ν•˜λ©° μ΄λŠ” μ–΄λ””κΉŒμ§€λ‚˜ μ΄μš©ν•˜λŠ” 개발자의 κΈ°ν˜Έμ΄λ‹€.

python3 -m venv ~/.venv/djangoproject
source ~/.venv/djangoproject/bin/activate

νŒ¨ν‚€μ§€ μ„€μΉ˜

κ°€μƒν™˜κ²½μ— μ§„μž…ν–ˆμœΌλ©΄ 이제 Django, Django REST frameworkλ₯Ό μ„€μΉ˜ν•œλ‹€.

pip3 install django djangorestframework

ν˜‘μ—…μ„ μœ„ν•΄ μ„€μΉ˜ν•œ νŒ¨ν‚€μ§€μ˜ μ’…λ₯˜μ™€ 버전 정보λ₯Ό μ•„λž˜μ™€ 같은 λͺ…λ Ήμ–΄λ‘œ requiremnts.txt에 μ €μž₯ν•˜μž.

pip3 freeze > requirements.txt

λ§Œμ•½ 이미 λ§Œλ“€μ–΄μ§„ ν”„λ‘œμ νŠΈλ₯Ό ν’€λ°›λŠ” μž…μž₯이라면 λ‹€μŒμ˜ λͺ…λ Ήμ–΄λ‘œ requiremnts.txt에 μ €μž₯된 νŒ¨ν‚€μ§€λ₯Ό μžμ‹ μ˜ λ‘œμ»¬μ— μ„€μΉ˜ν•  수 μžˆλ‹€.

pip3 install -r requirements.txt

Django ν”„λ‘œμ νŠΈ 생성

νŒ¨ν‚€μ§€ μ„€μΉ˜κ°€ μ™„λ£Œλ˜μ—ˆμœΌλ©΄ λ‹€μŒμ˜ λͺ…λ Ήμ–΄λ‘œ Django ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•˜μž. ${PROJECT_NAME}μ—λŠ” μ›ν•˜λŠ” ν”„λ‘œμ νŠΈ 이름이 μœ„μΉ˜ν•˜λ©΄ λœλ‹€.

django-admin startproject ${PROJECT_NAME}

μ΄λŸ¬ν•œ λͺ…령은 λ‹€μŒκ³Ό 같은 디렉터리 ꡬ쑰둜 ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•œλ‹€.

.
|____${PROJECT_NAME}
| |____asgi.py
| |______init__.py
| |____settings.py
| |____urls.py
| |____wsgi.py
|____manage.py

  • manage.py
    Django ν”„λ‘œμ νŠΈ 관리, 개발 도ꡬλ₯Ό μ œκ³΅ν•œλ‹€.
  • settings.py
    ν”„λ‘œμ νŠΈμ˜ 섀정을 κ΄€λ¦¬ν•œλ‹€. Django ν”„λ‘œμ νŠΈλ₯Ό μ‹€ν–‰ν•˜λ©΄ 이 νŒŒμΌμ—μ„œ μ„€μΉ˜λœ μ•±, μ΄μš©ν•  미듀웨어, μ—°κ²°ν•  λ°μ΄ν„°λ² μ΄μŠ€ λ“±μ˜ 정보λ₯Ό κ΅¬μ„±ν•œλ‹€.
  • wsgi.py (or asgi.py)
    WSGI application(λ˜λŠ” ASGI application)을 κ΅¬μ„±ν•œλ‹€.
  • urls.py
    URL μŠ€ν‚€λ§ˆλ₯Ό μ •μ˜ν•œλ‹€.

INSTALLED_APPS

Django REST framework이 λ™μž‘ν•˜κΈ° μœ„ν•΄μ„œλŠ” settings.py의 INSTALLED_APPS에 'rest_framework'λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•œλ‹€.

INSTALLED_APPS = [
    ...

    'rest_framework',

    ...

]

κ°œλ°œμ„œλ²„ μ‹€ν–‰

λ‹€μŒμ˜ λͺ…λ Ήμ–΄λ₯Ό μ΄μš©ν•΄ ν…ŒμŠ€νŠΈμš© 개발 μ„œλ²„λ₯Ό μ‹€ν–‰ν•  수 μžˆλ‹€.

python3 manage.py runserver