μμ±ν΄λκ³ μ μ₯κΉμ§ νλλ° λ€ λ μκ°λ€,,π λ무λ무 μμνμ§λ§ λλ¬Όμ λ¨ΈκΈκ³ λ€μ μμ±νλ€.
manage.py
: μ₯κ³ μ λ€μν λ°©λ²μΌλ‘ μνΈμμ©νλ€.
: DJANGO_SETTINGS_MODULE μ 보면 ν΄λΉ μ₯κ³ νλ‘μ νΈμ setting.py κ°μ μλ €μ£Όλ μν μ νλ€.
__init__
: λλ ν λ¦¬κ° python packageλ‘ μΈμλμ΄μΌ νλ€κ³ μλ €μ€λ€
WSGI : μΉ μλ²μ μ₯κ³ λ₯Ό μ°κ²°ν΄μ£Όλ μν μ νλ€. ν¬κ² 건λ€κ±΄ μλ€.
urls.py : μΉμλ²μμ λ€μ΄ μ¨ μ νΈλ₯Ό λ°λλ€. μ κ·ννμμΌλ‘ ꡬμ±μ΄ λμ΄ μμΌλ©° μ κ· ννμμ λ§κ²λ νΉμ ν view μ 보λ΄μ€λ€.
asgi.py : λΉλκΈ° ν΅μ μ μν λͺ¨λμ΄λ€.
templete : μ¬μ©μμκ² λ³΄μ¬μ£ΌκΈ° μν ui μμ
μ νλ κ³³μ΄λ€.
htmlνμΌμ΄λ©° μ΄ μμ λ€μν λ‘μ§μ 첨λΆνλ€. μ΄ λ λ€μν formλ€μ μ
λ ₯νλλ° form.py μμ μ½κ² κ΄λ¦¬ ν μ μλ€.
μ€μν νμΌμ΄λ©°, νλ‘μ νΈ κ΄λ ¨ν λ€μν μ€μ λ€μ κ°μ§κ³ μλ€.
λ€μ νλͺ©λ€μ νλ‘μ νΈ κ°λ° μ νμμ¬ν!! κ·Έλμ μ₯κ³ κ° μλμΌλ‘ λ±λ‘ν μ¬νμ νμνλ€λ©΄ μμ ν΄μ£Όλ©΄ λλ€.
λ°μ΄ν°λ² μ΄μ€ μ€μ : djangoλ sqlite3μ κΈ°λ³Έμ μΌλ‘ κ°μ§κ³ μλ€. λ°λ‘ μ€μΉν νμλ μμΌλ μνλ€λ©΄ λ°μ΄ν°λ² μ΄μ€λ₯Ό λ³κ²½ν μ μλ€.
μ ν리μΌμ΄μ λ±λ‘ - INSTALED_APPS : νλ‘μ νΈμ ν¬ν¨λλ APPλͺ¨λ μ€μ νμΌμ λ±λ‘ν΄μΌ νλ€.
ν
νλ¦Ώ νλͺ© μ€μ : TEMPLATES νλͺ©μΌλ‘ μ§μ
- μ₯κ³ μμ ν
νλ¦Ώμ μ°Ύλ μμλ INSTALED_APPS μ€μ νλͺ©μ λ±λ‘λ μμλλ‘ κ²μνλ€. (보ν΅μ νλ‘μ νΈ ν
νλ¦Ώ > κ·Έ λ€μ μ± ν
νλ¦Ώ κ²μ)
STATIC_URL : μ μ νμΌμ URL(css, javascript, image λ±)μ λ€λ£¨λ μ€μ νμΌμ΄λ€.
νμμ‘΄ μ§μ : μ΅μ΄μλ μΈκ³νμ€μ(UTC)λ‘ μ€μ . νκ΅μκ°μΌλ‘ λ³κ²½ν΄μ€μΌ νλ€
DEBUG : μλ¬ κ΄λ ¨λ λ΄μ©μ λ³Ό μ μμΌλ©° κ°λ° ν λλ λλ²κ·Έ λͺ¨λλ₯Ό trueλ‘ λλ©΄ λλ€. μ€μ λ°°ν¬ν λλ false λ‘ ν΄λμΌ μ¬μ©μλ€μκ² λ
ΈμΆμ΄ λμ§ μλλ€.
MIDDELWARE_LASSES : request μ response μ¬μ΄μμ μΈμ¦, 보μκ³Ό κ΄λ ¨λ λ΄μ©λ€μ λ€λ£¬λ€. ν¬κ² μ κ²½ μΈ κ±΄ μλ€.
νλ‘μ νΈλ₯Ό λ§λ€λ©΄μ κ°μ₯ λ§μ΄ μ¬μ©ν νμΌμ΄λ€.
ν¨μμ ννλ‘ κ΅¬ννλ©° μ ν리μΌμμ
μ 'λ‘μ§'μ λ£λ κ³³μ΄λ€.
λͺ¨λΈμμ νμν μ 보λ₯Ό λ°μμμ(=λ°μ΄ν°λ² μ΄μ€μμ λ°μμμ) ν
νλ¦Ώμ μ λ¬νλ μν μ νλ€
βπ» λ‘μ§ κ΅¬μ±μ λ°λΌ 2κ°μ§μ λ·°λ‘ λλλ€.
- ν¨μλ‘ μ½λ©νλ ν¨μν λ·°
- ν΄λμ€λ‘ μ½λ©νλ ν΄λμ€ν λ·°
ν
μ΄λΈμ μ μνλ νμΌμ΄λ©°,
DB μ²λ¦¬λ ORM κΈ°λ²μ μ¬μ©νλ€
ORMμ μ¬μ©νλ©΄μ μνλ λͺ¨λΈμ μμ±νκ³ λ€λ£¨λ κ³³
μ¦, models.pyλ₯Ό ν΅ν΄ DBκ΄λ¦¬λ₯Ό ν μ μλ€!π
models.CharField : κΈμμκ° μ νλ ν μ€νΈ μ μ, κΈ μ λͺ© κ°μ΄ 짧μ λ¬Έμμ΄ μ 보 μ μ₯ν λ μ¬μ©
models.TextField : κΈμμκ° μ νμ΄ μλ ν μ€νΈ (λΈλ‘κ·Έ μ½ν μΈ μ²λΌ)
models.DateTimeField : λ μ§μ μκ°μ μλ―Έ
models.ForeignKey : λ€λ₯Έ λͺ¨λΈμ λν λ§ν¬
νλ‘μ νΈλ₯Ό κ΄λ¦¬νκΈ°μν λ€μν λͺ
λ Ήμ΄λ₯Ό μ 곡νλ νμΌμ΄λ€.
λ°μ΄ν°λ² μ΄μ€μ ν
μ΄λΈμ μ μνλ νμΌμ΄λ€.
ORMκ³Ό μ°κ΄λμ΄ μμ!!
π₯ μ£Όμ λͺ λ Ήμ΄ π₯
startapp : μ± μμ±
runserver : μλ² μ€ν (μΉ μ¬μ΄νΈ μ€ν)
createsuperuser : μ΄κΈ° κ΄λ¦¬μ κ³μ μμ±
makemigrationsapp : λ³κ²½ μ¬νμ μλ²μ λκΈ°ν νλ 쿼리 μμ±
migrate : λ³κ²½ μ¬νμ λλΉμ λ°μ
shell : μμ ν΅ν΄ λλΉμ λ°μ΄ν°νμΈ
collecstatic : λ°°ν¬ μ, μ± λ§λ€ stactic νμΌμ΄ μ‘΄μ¬νλλ° ν κ³³μ λͺ¨μμ£Όλ μν
ex) μ¬μ© μμ
./manage.py runserver 0.0.0.0:8080
π§πΌββοΈ κ°λ¨ μ 리 π§πΌββοΈ
νλ‘μ νΈ λΌλ : νλ‘μ νΈ λ° μ± κ°λ°μ νμν λλ ν 리μ νμΌ μμ±
λͺ¨λΈ μ½λ© : νμ΄λΈ κ΄λ ¨ μ¬νμ κ°λ°(models.py, admin.py)
URLconf μ½λ© : URL λ° λ·° 맀ν κ΄κ³λ₯Ό μ μ(urls.py)
λ·° μ½λ© : μ ν리μΌμ΄μ
λ‘μ§ κ°λ°(views.py)
ν
νλ¦Ώ μ½λ© : νλ©΄ UIκ°λ° (templates/λλ ν 리 νμμ *html νμΌ)
μΆμ² : μ₯κ³ κ°λ