์ฐ๋ฆฌ๋ ์์ผ๋ก ์ธ์ ๋ sns๋ฅผ ์ ์ํด๋ณผ ๊ฒ๋๋ค. sns๋ฅผ ์ ์ํ๋ ํ๋ก์ ํธ๊ฐ ์ฃผ์ด์ก์ ๋ ์์๋๋ ๊ธฐ๋ฅ๋ค์ด ์๊ฒ ์ฃ ?
- ํ์๊ฐ์ /๋ก๊ทธ์ธ
- ๋ฉ์ธ ํ๋ฉด(๋ค์ํ ๊ฒ์๋ฌผ์ ๋ณผ ์ ์๋)
- ๊ฒ์๊ธ ์์ฑ
- ์์ ์ ํผ๋(๊ฒ์๊ธ) ๊ด๋ฆฌ(์์ ,์ญ์ )
์ด๋ฌํ ๊ธฐ๋ฅ๋ค ํ๋ํ๋๊ฐ App์ด ๋์ด ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ๋ง๋ main ์ฑ์ ๋๋ฒ์งธ์ ๋ฉ์ธ ํ๋ฉด์ ๊ฐ๋ฐํ ์ฑ์ด ๋๊ฒ ์ต๋๋ค.
migrations
: ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๋ฐ์ดํธํด์ฃผ๋ ํ์ผ์ ์ ์ฅํด์ฃผ๋ ํด๋__init__.py
: ๋น ํ์ผadmin.py
: ๊ด๋ฆฌ์ ์ฌ์ดํธ์ ๊ด๋ จ๋ ์ค์ apps.py
: ์ฑ์ ๋ํ ๊ธฐ๋ณธ์ ๋ณดmodels.py
: model์ ๋ํ ์ ๋ณดtest.py
: test case์ ๋ํ ์ ๋ณดviews.py
: ์ฑ์ ๋ํ views๋ฅผ ๊ด๋ฆฌํ๋ ํ์ผ => ์ด๋ฒ ์ธ์ ์์ ๋ค๋ค๋ด ๋๋ค!
-
main ์ฑ ์์
templates
ํด๋๋ฅผ ์์ฑํฉ๋๋ค. -
์์ฑํ templates ํด๋ ์์
main
ํด๋ (์ฑ ์ด๋ฆ๊ณผ ๋์ผํ ํด๋)๋ฅผ ์์ฑํฉ๋๋ค. -
์ฑ์ด๋ฆ๊ณผ ๋์ผํ ํด๋์์
mainpage.html
๋ฅผ ์์ฑํฉ๋๋ค. ๐ก ์ฑ ์ด๋ฆ๊ณผ ๋์ผํ ํด๋๋ฅผ ๋ง๋๋ ์ด์ ๋ง์ฝ ๋ค๋ฅธ ์ฑ์ ๋๊ฐ์ ์ด๋ฆ์ ๋ค๋ฅธ html์ด ์๋ค๋ฉด ๋ค๋ฅธ html์ ๊ฐ์ ธ์ฌ ์๋ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ค์ชฝ์ views.py์์ ๋ณด๋ฉด ๋ ์ดํด๊ฐ ์ฌ์ธ ๊ฒ๋๋ค. ๋ค์ชฝ์์ ๋ค์ ์ค๋ช ๋๋ฆด๊ฒ์. -
mainpage.html์ ๊ฐ๋จํ๊ฒ ์ฝ๋ ํ ์ค์ ์์ฑํฉ๋๋ค.
<h1>2021 Dongguk Likelion 9th SNS</h1>
mainpage.html์ ์์ฑํ์ง๋ง ์๋ฒ๋ฅผ ์คํํ๋ฉด ๋ฉ์ธํ๋ฉด์ด ๋์ค์ง ์์ต๋๋ค. htmlํ์ผ์ url์ ํตํด ์ฐ๊ฒฐํด์ฃผ์ด์ผ htmlํ์ผ์ ๊ฐ์ ธ์ ๋์์ค๋๋ค. url์ ํตํด ์ฐ๊ฒฐํ ๋ view๋ฅผ ๋ง๋ค์ด ๊ฒฝ๋ก์ ํ ๋นํด์ฃผ์ด์ผ ํฉ๋๋ค.
- main>views.py์ ํจ์ ์ ์ธํ๊ธฐ
from django.shortcuts import render # django.shorcutsํจํค์ง์์๋ render๋ผ๋ ํจ์๋ฅผ ์ฌ์ฉ
def showmain(request):
return render(request, 'main/mainpage.html')
# def ํจ์์ด๋ฆ(์ธ์):
# ํจ์๋ฅผ ํธ์ถํ์ ๋ ์คํ๋ ์ฝ๋
โ๏ธ request๋ ํญ์ ์ ์ด์ฃผ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํด์ฃผ์ธ์. request๊ฐ templates์ mainํด๋ ์์ ์๋ mainpage.html์ ์์ฒญํ๊ณ , render๊ฐ templte(mainpage.html)์ ์ ์กํ๋ค๊ณ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค.
๐ก ์ main/templates/main/mainpage.html์ด ์๋๋ผ main/mainpage.html์ธ๊ฐ์?
settings.py์๋ templates์ค์ ์ด ๋์ด์์ต๋๋ค. INSTALLED_APPS์ ๋ฑ๋กํ ์ฑ์ templates ํด๋๋ฅผ ์ฐพ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฆ์ด ์ผ์นํ๋ ํ์ผ์ ์ฐพ์ต๋๋ค. ์ด๋ฐ ๋ฐฉ์์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ Django ์์ ์ด template ์ ๋จ์ํ main/mainpage.html
๋ก ์ฐธ์กฐํ ์ ์์ต๋๋ค
๐ก ์ฑ ์ด๋ฆ๊ณผ ๋์ผํ ํด๋๋ฅผ ๋ง๋๋ ์ด์ ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ mainํด๋๋ฅผ ๋ง๋ค์ง ์๊ณ templatesํด๋์ ๋ฐ๋ก mainpage.html์ ๋ง๋ค์์ ๊ฒฝ์ฐ
def showmain(request):
return render(request, 'mainpage.html')
์ด๋ ๊ฒ ์์ฑํด์ผํ ๊ฒ์ ๋๋ค. ํ์ง๋ง django๋ INSTALLED_APPS์ ๋ฑ๋ก๋ ์ฑ์ templates ํด๋๋ฅผ ํ์ํ๋ค๊ฐ ์ด๋ฆ์ด ์ผ์นํ๋ ์ฒซ๋ฒ์งธ template ์ ์ ํํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ snsํ๋ก์ ํธ๋ฅผ ๋ง๋ค๋ค๊ฐ ๋ง์ดํ์ด์ง ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ , mypage์ฑ์ templatesํด๋์์ mainpage.html์ด ์๋ค๋ฉด django๋ main์ฑ์ mainpage.html์ ๋ถ๋ฌ์์ผํ๋ mypage mainpage.html์ ๋ถ๋ฌ์์ผํ๋์ง ์ ํํ ์์๋ด์ง ๋ชปํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ templatesํด๋ ์์ ์ฑ ์ด๋ฆ๊ณผ ๋์ผํ ํด๋๋ฅผ ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ ๋๋ค.
html ํ์ผ๋ ์์ฑํ๊ณ , views.py์์ html ํ์ผ์ ๋์์ฃผ๋ ์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค. ์ด์ url์์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด ์ด๋ค ๊ฒฝ๋ก์ ์ ์ํ์ ๋ ํด๋น htmlํ์ผ์ ๋์์ค์ง ์ฐ๊ฒฐํด์ฃผ๋ฉด ๋ฉ๋๋ค.
from django.contrib import admin
from django.urls import path
from main import views # main์ฑ์ viewsํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ถ๋ฌ์ต๋๋ค.
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.showmain), # ์๋ฌด๊ฒ๋ ์
๋ ฅ์ํ ๊ฒฝ๋ก์ main์ฑ์ views.py์ showmainํจ์๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค.
]
-
ํจ์ ๋ถ๋ฌ์ค๊ธฐ
from main import views
main์ฑ์ viewsํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ถ๋ฌ์ต๋๋ค. -
๊ฒฝ๋ก ์ถ๊ฐํ๊ธฐ
path('๊ฒฝ๋ก', ํด๋นํ๋ view),
์์ ์ ์ ๊ฒฝ๋ก๋ก ์ ์ํ์ ๋ ๋ค์ ์ ์ ํจ์๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค. ์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ก,
์ ์ด์ฃผ๋ ๊ฒ ์์ง๋ง์ธ์!path('', views.showmain)
''
๋ ์๋ฌด๊ฒ๋ ์ ๋ ฅ์ํ์ ๋๋ฅผ ๋งํฉ๋๋ค. ์ฆ, ์ ์ผ ์ฒ์ ๋จ๋ ํ๋ฉด์ด๊ฒ ์ฃ . ํด๋น ๊ฒฝ๋ก์ผ ๋ views.showmain์ ์์์ importํ main์ฑ์ showmainํจ์๋ก ์ฐ๊ฒฐํฉ๋๋ค. showmainํจ์๋ ์๊น main์ฑ์ mainpage.html์ renderํด์ฃผ๋ฏ๋ก mainpage.html์ ๋์ฐ๊ฒ ๋ฉ๋๋ค.
$ python manage.py runserver
$ git add.
$ git commit -m "mainpage ๋์ฐ๊ธฐ"
$ git push origin main
- ์ฑ>templates>์ฑ ํด๋>htmlํ์ผ
- ์ฑ>views.py
- ํ๋ก์ ํธ ํ์ผ>urls.py
- url ์ ๋ ฅ - urls.py์์ url์ ๋ง๋ views์ ํจ์๋ฅผ ์ฐพ๋๋ค.
- url์ด
http://127.0.0.1:8000/
์ ๋๋ค. ๊ฒจ์ฌ์ ์๋ฌด๊ฒ๋ ์ ๋ ฅํ์ง ์์์ต๋๋ค. path('', views.showmain)
๊ทธ๋ ๋ค๋ฉด viewsํจ์๋ค ์ค showmain์ด๋ผ๋ ํจ์๋ก ๊ฐ๋๋ค.
- views์ ํด๋นํ๋ ์ฑ์ผ๋ก ๋ค์ด๊ฐ views.py์ ํจ์๋ฅผ ํ์ธํฉ๋๋ค.
from main import views
views๋ main์ฑ์ views.py์ ์๋ ํจ์๊ตฐ์.-
def showmain(request): return render(request, 'main/mainpage.html')
showmain์ด๋ผ๋ ํจ์๋ main์ฑ์ templatesํด๋์์ mainํด๋์์ mainpage.html์ ์ ์กํด์ฃผ๋ ํจ์๋ค์.
- ํจ์๊ฐ ์ฐ๊ฒฐํด์ค templates์ html์ ์ฐพ์์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค๋๋ค.
<h1>2021 Dongguk Likelion 9th SNS</h1>
์ด ๋ด์ฉ์ด ํ๋ฉด์ ๋ณด์ด๊ฒ ๋ค์!