1. Django ํต์ Logic ๐
- user์ ์ํด ์ ์์ด ๋๋ค๋ฉด project file์์ ์๋ urls.py๋ฅผ ํตํด ๋ค์ด์ค๊ฒ ๋ฉ๋๋ค.
- project file ์์๋ง ์์ฑํ๊ฒ ๋๋ฉด ํ๋ก๊ทธ๋จ์ด ๋ฌด๊ฑฐ์์ง๋ฏ๋ก ๋ถ์ ํ๋ฅผ ์ค์ํฉ๋๋ค.
- ๋จผ์ project file์์ ์๋ urls.py์ ๋ค์ด์ค๊ฒ ๋๊ณ , ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ app file ์์ ์๋ urls.py๋ก ๋ถ์ ํํด์ฃผ๊ณ , urls.py์์๋ view file ์์ ํจ์๋ฅผ ๋ง๋ค์ด ๋ถ์ ํ๋ฅผ ํด์ค๋๋ค.
- Web service๋ฅผ ์ด์ฉํ๊ฒ ๋๋ฉด ๋ฌด์กฐ๊ฑด์ ์ผ๋ก DB๋ฅผ ๊ตฌ์ถํด์ผ ํ๋๋ฐ Django์์ model์ ์ด์ฉํด DB์์ ํต์ ์ ๊ตฌ์ถํด์ฃผ๊ณ ์๋์ ๊ฐ์ flow๋ก ํต์ ํด์ค๋๋ค.
2. Django App ์ด๋? ๐
Django App ์ Django์์ ์ฌ์ฉํ๋ ํ์ด์ฌ ํจํค์ง์ ๋๋ค. ๋ํ ํจ์จ์ ์ธ ์์ ์ ์ํด ๋ถ์ ํ ํด ๋๋๋ค ์ด์ผ๊ธฐ ํ ์ ์์ต๋๋ค.
1. App ์์ฑ
App์ ์์ฑํ๋ ๋ช ๋ น์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ ์ ์์ผ๋ ๋ํ์ ์ผ๋ก 2๊ฐ์ง๊ฐ ์์ต๋๋ค.
1. django-admin startapp [App_name]
2. manage.py startapp [App_name]
๋ค์๊ณผ ๊ฐ์ด ๋ช ๋ น์ ์คํํ๋ฉด [App_name]๋ช ์ ์ฌ์ฉํด ์๋ก์ด Django App์ ์์ฑํ๋ ๋ช ๋ น์ ๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ด [myapp]์ด๋ผ๋ ์๋ธํด๋๊ฐ ์์ฑ๋๊ณ ๊ทธ ์์ Django App์ ํ์ํ ๊ธฐ๋ณธ ํ์ผ๋ค์ด ์์ฑ๋ฉ๋๋ค.
3. Routing ๐
1. Project File Set
๐ urls.py
- Project File ์์ urls.py๋ก ํต์ ์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
- ์ฐ๋ฆฌ๋ ์ด๋ ๊ฒ ๋ฐ์ ์ ๋ณด๋ฅผ App File ๋ด์ urls.py๋ก ๋ณด๋ด์ฃผ์ด์ผ ํ๋ App File์๋ urls.py๋ฅผ ๋ณต์ฌํด์ค๋๋ค.
- Project File์์ ์๋์ ๊ฐ์ ์ค๋ช ์ ํตํด App File/urls.py๋ก ์ ๋ฌํด์ค๋๋ค.
Including another URLconf
- Import the include() function: from django.urls import include, path
- Add a URL to urlpatterns: path('blog/', include('blog.urls'))
# Project File
# Project File -> App File๋ช
/urls๋ก ์ ๋ฌ
from django.urls import path, include
urlpatterns = [
path('', include('myapp.urls')),
]
2. App File Set
๐ urls.py
- App File/urls.py์์๋ ๋ฐ์ ์ ๋ณด๋ฅผ view File๋ด์ ํจ์๋ค๋ก ๋ถ์ ํ๋ฅผ ์์ผ์ผ ํจ์ผ๋ก ์์ ๋์ผํ ์์ ์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
# App File
# App File -> view File/function๋ก ์ ๋ฌ
# 1. '127.0.0.1:8000' ๋ก ์
๋ ฅ๋ฐ๋ ๊ฒฝ์ฐ
# 2. '127.0.0.1:8000/create' ๋ก ์
๋ ฅ๋ฐ๋ ๊ฒฝ์ฐ
# 3. '127.0.0.1:8000/read/'์ซ์'' ๋ก ์
๋ ฅ๋ฐ๋ ๊ฒฝ์ฐ
from django.urls import path
from myapp import views
urlpatterns = [
path('', views.basic),
path('create', views.create),
path('read/<id>/', views.read),
]
- ์ ๋ ฅ ๋ฐฉ๋ฒ: path('[๊ฒฝ๋ก๋ช ]', views.[ํจ์๋ช (๊ฒฝ๋ก๋ช )])
- ๊ฐ์ ๊ฒฝ๋ก์ ์๋ views file์ ๊ฐ์ ธ์์ผ ํ๋ฏ๋ก import ์์ผ์ฃผ์ด์ผ ํฉ๋๋ค.
from myapp import views- path('read/<id>/', views.read)์ ๊ฐ์ด ๋ฌ๋ผ์ง๋ ์ซ์๋ฅผ ์ ๋ ฅ๋ฐ๊ณ ์ถ๋ค๋ฉด <id>์ ๊ฐ์ด ์ค์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
๐ views
- ๋ง์ง๋ง ์์ ์ผ๋ก view File ๋ด์ ์ ์ ๊ฐ ์ ๋ ฅํ ๊ฒฝ๋ก์ path๋ฅผ ํจ์๋ก ์ค์ ํด์ค๋๋ค.
from django.shortcuts import render, HttpResponse
# Create your views here.
def basic(response):
return HttpResponse('hello world')
def create(response):
return HttpResponse('Welcome')
def read(response, id):
return HttpResponse('read' + id)
์์ 4๋ฒ ์์ ์์ <id>๋ผ๊ณ ์ ๋ ฅ๋ฐ์ ๋ถ๋ถ์ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ ฅ๋ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
4. ์ ๋ฆฌ ๐
๋ด ํ์ผ๋ช
- Project File Name = myproject
- App File name = myapp
- myproject/urls ๋ก user ๋ฐ์ดํฐ ์ ๋ ฅ ๋ฐ์
- 1๋ฒ์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ myapp/urls๋ก ์ ๋ฌ
- 2๋ฒ์ผ๋ก ์จ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ๊ฒฝ๋ก์ ์๋ views.[ํจ์๋ช ]์ ์ฌ์ฉํด ๋ถ์ ํ ํด์ฃผ๋ฉด ๋ !
์ฐธ๊ณ ์๋ฃ ๐ฉ
[Django] - virtual env
virtualenvvirtualenv๋ ๊ฐ์์ ํ์ด์ฌ ํ๊ฒฝ์ ๋ง๋ค๊ธฐ ์ํ ๋๊ตฌ์ด๋ค. ์ฐธ๊ณ ๋ก ์ ํ๊ฒฝ์ window์ ๋๋น !!1. pip๋ก virtualenv ์ค์น>>> pip install virtualenv2. ํ๋ก์ ํธ์ ๊ฐ์ ํ๊ฒฝ ์์ฑ>>> virtualenv myvenv3. ๊ฐ์ํ๊ฒฝ
o-ddong.tistory.com
[Django] - CRUD ๊ธฐ๋ฅ ๊ตฌํ
1. CRUD ๐Django๋ MVT(Model View Template) ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ CRUD(Create, Retrieve, Update, Delete) ์์ ์ ์ค์ฌ์ผ๋ก ํฉ๋๋ค.Create : DB์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํจRead : DB์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ดUpdate : DB์ ํน์ ๋ฐ
o-ddong.tistory.com
'Django' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Django] - Model Inheritance (0) | 2024.09.07 |
---|---|
[DRF] - Authentication (1) | 2024.09.07 |
[Django] - virtual env (0) | 2024.08.31 |
[Django] - CRUD ๊ธฐ๋ฅ ๊ตฌํ (0) | 2024.08.31 |
[Django] - ๊ธฐ๋ณธ ์ค์ (0) | 2024.08.31 |