728x90
Django ๊ต์ก ๋ด์ฉ ํ๊ธฐ (๊ณผ์ )
- Django ์์
- python –m venv[๊ฐ์ํ๊ฒฝ๋ช ] : ๊ฐ์ํ๊ฒฝ ์์ฑ
- source[๊ฐ์ํ๊ฒฝ๋ช ]/Script/active : ๊ฐ์ํ๊ฒฝ ์คํ
- pip install django : django ๋ค์ด๋ก๋
- django-admin startproject[ํ๋ก์ ํธ์ด๋ฆ] : ํ๋ก์ ํธ ์์ฑ
- python manage.py startapp ์ฑ์ด๋ฆ : App ์์ฑ ( App์ด๋, Django ํ๋ก์ ํธ๋ฅผ ์ด๋ฃจ๋ ์์ ๋จ์ ex) ๋ค์ด๋ฒ๋ฉ์ผ, ๋ค์ด๋ฒ์ผํ ๋ฑ )
- python manage.py runserver : ์๋ฒ ๊ธฐ๋
- ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ
- ์ ๋ ๊ฒฝ๋ก : ๋ฃจํธ ๋๋ ํฐ๋ฆฌ(/)๋ถํฐ ์์ํด ์ํ๋ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ชจ๋ ํํํ๋ ๊ฒ
ex) \Users\Desktop\likelion_9th_study\lion.jpg - ์๋ ๊ฒฝ๋ก : ํ์ฌ ๋๋ ํฐ๋ฆฌ(.)๋ถํฐ ์์ํด ๋จ๊ณ์ ์ผ๋ก ์ํ๋ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ํํํ ๊ฒ
ex) ..\likelion_9th_study\lion.jpg
- ์ ๋ ๊ฒฝ๋ก : ๋ฃจํธ ๋๋ ํฐ๋ฆฌ(/)๋ถํฐ ์์ํด ์ํ๋ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ชจ๋ ํํํ๋ ๊ฒ
- ๋ช
๋ น์ด
- pwd : ํ์ฌ ์์น
- man : ๋ช ๋ น์ด ์ค๋ช ์
- ls : ๋๋ ํฐ๋ฆฌ ๋ชฉ๋ก
- cd : ํ์ฌ ์์น ์ด๋
- clear : ํฐ๋ฏธ๋ ์ฒญ์
- MTV ํจํด
- Model(beckend), Templete(frontend), View(backend)
- Templete : ์ฌ์ฉ์๊ฐ ๋ณด์ด๋ ์์ญ -> HTML / CSS / ํ ํ๋ฆฟ ์ธ์ด
- Model : Database(DB)
- View : ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ณณ
- Git
- Git : ์์ ์ด ์์ ํ ์ฝ๋
- Github : ์์ ์ด ์์ ํ ์ฝ๋๋ฅผ ๊ณต์
- ์ ์ฅํ ํ์ผ ์ ํ (git add) -> ์ ํํ ํ์ผ ์ ์ฅ (git commit)
- ์ ๋ก๋: git init -> git add -> git commit –m “messege” -> git remote add [remote ์ด๋ฆ] [repository ์ฃผ์] -> git push [remote์ด๋ฆ] [branch ์ด๋ฆ]
- ์น ํ์ด์ง ๊ตฌ๋ ์์
- ์ฌ์ฉ์๊ฐ ์๋ฒ์ ์์ฒญ
- ์๋ฒ์ view๋ model์๊ฒ ์์ฒญ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์
- view๋ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ๊ฒ ์ฒ๋ฆฌํด์ template์ผ๋ก ๋๊น
- template์ ๋ฐ์ ์ ๋ณด๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค
์ค์ต) ์ฌ์ฉ์ ์ด๋ฆ ๋ฐ์์ ์ถ๋ ฅํ๋ ์น
์ผ์ชฝ์ welcome.html
ํ์ด์ง์์ ์ฌ์ฉ์์ ์ด๋ฆ์ ์
๋ ฅํ์ฌ ์ ์ถํ๋ฉด ์ค๋ฅธ ์ชฝ์ hello.html
ํ์ด์ง๋ก ๋์ด๊ฐ "๋ฐ๊ฐ์ต๋๋ค! [์ด๋ฆ]๋" ๊ฐ ์ถ๋ ฅ๋๊ฒ๋ ํ๋ ์ค์ต์ ์งํํ์๋ค.
welcome.html
์์ input ๋ฐ์ค์ ์ ํ ์๋ ๋ด์ฉ์ hello.html
์ ์ธ์๋ก ์ ๋ฌํ๋ ๊ฒ์ด ๊ด๊ฑด์ด์๋ค.
์ ์ค์ต์ ์ฝ๋ ์์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
- App ์์ฑํ๊ธฐ
- ํฐ๋ฏธ๋์์
python manage.py startapp fisrtapp
๋ก App ์์ฑ firstproject>firstproject>settings.py
์ INSTALLED_APPS ๋ฆฌ์คํธ์ 'firstapp.apps.FirstappConfig' ์ถ๊ฐ
- ํฐ๋ฏธ๋์์
- welcome.html - Template ์์ฑํ๊ธฐ
- fisrtapp ํด๋ ์๋ templates ํด๋ ์์ฑ
- templates ํด๋ ์๋
welcome.html
ํ์ผ ์์ฑ ํ ์ฝ๋ ์์ฑ -
<div style="text-align: center"> <h1>์ฌ์ฉ์์ ์ด๋ฆ์ ์ ๋ ฅํด์ฃผ์ธ์</h1> <br> <form action=""> <label for="nameInput">์ด๋ฆ : </label> <input id="nameInput" name="name"> <input type="submit" value="์ ์ถ"> </form> </div>
- Welcome - View ์์ฑํ๊ธฐ
firstproject>firstapp>views.py
์welcome.html
ํ์ด์ง๋ฅผ renderํด์ฃผ๋ welcome ํจ์ ์์ฑ-
def welcome(request): return render(request, "welcome.html")
- Welcome – URL ์ฐ๊ฒฐํ๊ธฐ
firstproject>firstproject>urls.py
์ views๋ฅผ importํ ํ urlpatterns ๋ฆฌ์คํธ์views.py
์ welcome ํจ์์ ์ฐ๊ฒฐ๋๋ path ์ถ๊ฐ-
from django.contrib import admin from django.urls import path from firstapp import views # urlpatterns = [ path('admin/', admin.site.urls), path('', views.welcome, name="welcome"), # ]
- hello.html - Template ์์ฑํ๊ธฐ
- templates ํด๋ ์๋
hello.html
ํ์ผ ์์ฑ ํ ์ฝ๋ ์์ฑ views.py
์์ ์ ๋ฌ๋ฐ์ ์ธ์ {{userName}}-
<div style="text-align: center"> <h1>๋ฐ๊ฐ์ต๋๋ค! {{userName}}๋</h1> </div>
- templates ํด๋ ์๋
- Hello - View ์์ฑํ๊ธฐ
firstproject>firstapp>views.py
์hello.html
ํ์ด์ง๋ฅผ renderํด์ฃผ๋ hello ํจ์ ์์ฑwelcome.html
๋ก๋ถํฐ userName์ ๊ฐ์ ธ์hello.html
render ์ ์ธ์๋ก ์ ๋ฌ-
def hello(request): userName = request.GET['name'] return render(request, "hello.html", {'userName' : userName})
- Hello - URL ์ฐ๊ฒฐํ๊ธฐ
firstproject>firstproject>urls.py
์ urlpatterns ๋ฆฌ์คํธ์views.py
์ hello ํจ์์ ์ฐ๊ฒฐ๋๋ path ์์ฑ-
urlpatterns = [ path('admin/', admin.site.urls), path('', views.welcome, name="welcome"), path('hello/', views.hello, name="hello"), # ]
- welcome.html ์์
welcome.html
์์ input ๊ฐ(์ด๋ฆ)์ด ์ ์ถ๋๋ฉด 'hello' url์ ํตํดhello.html
๋ก ์ ๋ฌ๋ ์ ์๋๋ก formํ๊ทธ์ action ์์ฑ์ 'hello'์ผ๋ก ์ง์ -
<form action="hello"> <label for="nameInput">์ด๋ฆ : </label> <input id="nameInput" name="name"> <input type="submit" value="์ ์ถ"> </form>
์ ์ฒด ์ค์ต ์ฝ๋๋ ์๋ ๊นํ๋ธ์์ ํ์ธํ ์ ์๋ค.
https://github.com/J1Yun/likelion/tree/main/3.%20Django/helloUser
728x90