1ํธ โ Django๋ ๋์ฒด ๋ญ ๋์ ํด์ฃผ๋
AI ํ์ฉ ํ ํฌ์ฐฝ ์ฐ๊ตฌํ์ด ์ธ๊ณต์ง๋ฅ์ ํ์ฉํด ์์ฑํ๊ณ , ์ฌ์ค ํ์ธ๊ณผ ํธ์ง ์ฌ์ฌ๋ฅผ ๊ฑฐ์ณ ๋ฐํํ ์นผ๋ผ์ ๋๋ค. ์ ์ ๊ณผ์ ๋ณด๊ธฐ
๐ต Cursor์ "Django๋ก ๊ฒ์ํ ๋ง๋ค์ด์ค"๋ผ๊ณ ํ๋๋ ํด๋์ ํ์ผ์ด ์ฐ์์ ์๊ฒผ์ต๋๋ค. ์ด์ด๋ณด๋ฉด ์ด๋ฐ ์๊ฐ์ด ๋ญ๋๋ค.
"๋๋
settings.py๋ฅผ ๊ฑด๋๋ฆฐ ์ ๋ ์๋๋ฐ ์๋ฒ๋ ์ด๋ป๊ฒ ๋จ์ง?"
์ค๋ ํ ์ง๋ฌธ์ ์ด๊ฒ ํ๋์
๋๋ค. settings.py๋ฅผ ํ ์ค๋ ์ ๊ฑด๋๋ ธ๋๋ฐ ์๋ฒ๊ฐ ๋จ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์? ๋์์ ๋ต์ ์ ๋ฆฌํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๐ฌ ์ง๋ ์ด์ผ๊ธฐ: 0ํธ์์๋ AI๊ฐ ๋ง๋ Django ์ฝ๋๋ฅผ ๋๋์ด์ ๋ง์ถฐ ํต์ญํด ๋๋ฆฌ๊ฒ ๋ค๊ณ ์ฝ์ํ์ต๋๋ค. ์ค๋์ ๊ทธ ์ฒซ ๋ฒ์งธ ์ฝ๋ ๋๋ฏธ๋ฅผ ์ด์ด๋ด ๋๋ค.
๐ค AI๊ฐ ์ง์ค ์ฝ๋
ํ๋กฌํํธ:
"Django ํ๋ก์ ํธ ์์ํ๋ ๋ช ๋ น์ด๋ ๊ฒฐ๊ณผ ํด๋ ๊ตฌ์กฐ ์๋ ค์ค"
django-admin startproject config .
python manage.py startapp community
์คํํ๋ฉด ์ด๋ฐ ํ์ผ์ด ์๊น๋๋ค.
my_project/
โโโ manage.py
โโโ config/
โ โโโ __init__.py
โ โโโ settings.py
โ โโโ urls.py
โ โโโ asgi.py
โ โโโ wsgi.py
โโโ community/
โโโ __init__.py
โโโ admin.py
โโโ apps.py
โโโ models.py
โโโ views.py
โโโ tests.py
โโโ migrations/
โโโ __init__.py
๋ช ๋ น์ด ๋ ์ค์ ์ณค์ ๋ฟ์ธ๋ฐ ํ์ผ์ด ์ด ๋ช ๊ฐ ์๊ฒผ์ต๋๋ค. ์ด์ด์ ์๋ฒ๋ฅผ ์ผ ๋ณด๊ฒ ์ต๋๋ค.
python manage.py runserver
ํฐ๋ฏธ๋์๋ ์๋์ ๊ฐ์ ์ค์ด ๋์ต๋๋ค. ์๋ถ๋ถ์ ๊ฒฝ๊ณ ์ค์ ์๋ตํ์ต๋๋ค.
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
์ฒ์ ์คํํ๋ฉด unapplied migration(s) ๊ฒฝ๊ณ ๊ฐ ํจ๊ป ๋ณด์ผ ์ ์์ต๋๋ค. ์ง๊ธ์ ๋ฌด์ํด๋ ๋๊ณ 6ํธ์์ ๋ค๋ฃน๋๋ค.
๋ธ๋ผ์ฐ์ ์์ ์ด ์ฃผ์๋ฅผ ์ด๋ฉด ๋ก์ผ ๊ทธ๋ฆผ๊ณผ "The install worked successfully! Congratulations!" ๋ฌธ๊ตฌ๊ฐ ์๋ ๊ธฐ๋ณธ ํ์ ํ๋ฉด์ด ๋ณด์ ๋๋ค(์๊ณผ ๋์์ธ์ ๋ฒ์ ๋ง๋ค ๋ค๋ฅผ ์ ์์ต๋๋ค). ์ฐ๋ฆฌ๊ฐ ํ๋ฉด์ ๋ง๋ ์ ์ ์๋๋ฐ๋์.
๋น๋ฐ์ startproject๊ฐ ๋ง๋ค์ด ์ค config/settings.py์ ์์ต๋๋ค. ์ด์ด ๋ณด๋ฉด ์ฒ์๋ถํฐ ์ด๋ฐ ๋ด์ฉ์ด ์ฑ์์ ธ ์์ต๋๋ค(์ผ๋ฐ Django ๊ธฐ๋ณธ๊ฐ ์ค ์ผ๋ถ์
๋๋ค).
# config/settings.py (startproject ๊ธฐ๋ณธ๊ฐ ์ค ์ผ๋ถ)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
๐ ํ ์ค์ฉ ํต์ญ
์๋ฒ๊ฐ ๋จ๋ ๊ณผ์ : manage.py โ settings โ runserver
๋จผ์ startproject๊ฐ manage.py์ ์ฌ์ด ๋ ์ค์ ๋ณด๊ฒ ์ต๋๋ค. ์ด์ด ๋ณด๋ฉด main() ํจ์ ์์ ์ด๋ฐ ์ค์ด ์์ต๋๋ค.
# manage.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
์ด ์ค์ด settings๋ฅผ ์ฐพ๋ ๊ฒฝ๋ก์ ๋๋ค. ํ์ด์ ์ฝ์ผ๋ฉด ์ด๋ ์ต๋๋ค.
DJANGO_SETTINGS_MODULE์ "Django ์ค์ ํ์ผ์ด ์ด๋ ์๋์?"์ ๋ํ ๋ต์ ์ ์ด ๋๋ ํ๊ฒฝ ๋ณ์ ์ด๋ฆ์ ๋๋ค.'config.settings'๋ "configํด๋ ์์settings.py"๋ผ๋ ํ์ด์ฌ์ ์ฃผ์์ ๋๋ค. ํด๋ ์ด๋ฆ์config๋ก ์ง์๊ธฐ ๋๋ฌธ์ ์ด ์ด๋ฆ์ด ๋ค์ด๊ฐ์ต๋๋ค.setdefault๋ "์ด๋ฏธ ์ง์ ๋ ๊ฐ์ด ์์ ๋๋ง ์ด ๊ฐ์ ์ด๋ค"๋ ๋ป์ ๋๋ค.
์ฆ manage.py๋ Django์๊ฒ "์ค์ ์ config/settings.py์ ์๋ค"๊ณ ์๋ ค ์ฃผ๋ ์ฃผ์ ๋ฉ๋ชจ๋ฅผ ๋ค๊ณ ์๋ ํ์ผ์
๋๋ค. ๊ทธ๋์ ์ง์ ํธ์งํ ์ผ์ด ๊ฑฐ์ ์์ต๋๋ค.
์ด์ python manage.py runserver๋ฅผ ์ณค์ ๋ ์ผ์ด๋๋ ์ผ์ ์์๋๋ก ๋ฐ๋ผ๊ฐ ๋ด
๋๋ค.
manage.py๊ฐ ์คํ๋๋ฉด์ ์์setdefault์ค์ด ํ๊ฒฝ ๋ณ์๋ฅผconfig.settings๋ก ๋ง์ถฅ๋๋ค.manage.py๊ฐ Django์ ๋ช ๋ น ์คํ ๊ธฐ๋ฅ์runserver๋ผ๋ ๋ช ๋ น์ ๋๊น๋๋ค.- Django๊ฐ
config.settings๋ฅผ importํฉ๋๋ค. ์ด ์๊ฐsettings.py์ ๋ด์ฉ์ด ํ์ด์ฌ ๊ฐ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ต๋๋ค. - Django๊ฐ
INSTALLED_APPS๋ฅผ ์์์๋ถํฐ ํ ์ค์ฉ ๋ก๋ฉํฉ๋๋ค.admin,auth,contenttypes,sessions,messages,staticfiles์์๋ก ๊ฐ ์ฑ์ ์ค๋นํฉ๋๋ค. MIDDLEWARE๋ชฉ๋ก์ผ๋ก ์์ฒญ ์ฒ๋ฆฌ ์ค์ ์ธ์ฐ๊ณ ,urls.py๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค.- 8000๋ฒ ํฌํธ์์ ์์ฒญ์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์์ง ์ฐ๋ฆฌ๊ฐ ๋ง๋ ์ฃผ์๊ฐ ํ๋๋ ์๊ณ
DEBUG๊ฐ ์ผ์ ธ ์์ผ๋ฉด Django๊ฐ ๊ธฐ๋ณธ ํ์ ํ๋ฉด์ ๋ณด์ฌ ์ค๋๋ค.
settings.py๋ฅผ ์ง์ ๊ณ ์น์ง ์์๋ ๋๋ ์ด์ ๊ฐ ์ฌ๊ธฐ์ ๋ณด์
๋๋ค. startproject๊ฐ ๊ฐ์ด ์ฑ์์ง ํ์ผ์ ๋ง๋ค์๊ณ , manage.py์ ํ ์ค์ด ๊ทธ ํ์ผ์ ๊ฐ๋ฆฌํค๊ณ , runserver๊ฐ ๊ทธ ํ์ผ์ importํด์ ์ฝ๊ธฐ ๋๋ฌธ์
๋๋ค.
INSTALLED_APPS: ๊ฑด๋ฌผ ์ ์ฃผ ๋ช ๋จ
์ ๊ธฐ๋ณธ 6์ค์ Django๊ฐ ๊ธฐ๋ณธ์ผ๋ก ๋ค๊ณ ์จ ๋ถํ์ ๋๋ค. ๊ฐ๊ฐ ์ด๋ฐ ์ผ์ ํด ์ค๋๋ค.
admin:/admin/์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ๊ณ ์น๋ ๊ด๋ฆฌ์ ํ์ด์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.auth: ํ์, ๋น๋ฐ๋ฒํธ, ๊ถํ ๋ชจ๋ธ์ ์ ๊ณตํฉ๋๋ค.contenttypes: ๋ชจ๋ธ์ ์ข ๋ฅ๋ฅผ ๊ธฐ๋กํด ๋์ด ๊ถํ ๊ฐ์ ๊ธฐ๋ฅ์ด "์ด๋ค ๋ชจ๋ธ์ ๋ํ ๊ฒ์ธ์ง" ๊ฐ๋ฆฌํฌ ์ ์๊ฒ ํฉ๋๋ค.sessions: ๋ก๊ทธ์ธ ์ํ ๊ฐ์ ๋ฐฉ๋ฌธ์ ์ ๋ณด๋ฅผ ์๋ฒ์ ๊ธฐ์ตํฉ๋๋ค.messages: "์ ์ฅ๋์์ต๋๋ค" ๊ฐ์ ์ผํ์ฑ ์๋ฆผ์ ํ๋ฉด์ ์ ๋ฌํฉ๋๋ค.staticfiles: CSS, ์ด๋ฏธ์ง ๊ฐ์ ์ ์ ํ์ผ์ ์ฐพ์ ์ ๊ณตํฉ๋๋ค.
๋ด๊ฐ ๋ง๋ ์ฑ(community)๋ ์ด ๋ช
๋จ์ ์ด๋ฆ์ ์ฌ๋ ค์ผ Django๊ฐ ํ๋ก์ ํธ์ ์ผ๋ถ๋ก ์ธ์ํฉ๋๋ค. ์๋ "์์ฃผ ๊นจ์ง๋ ์ง์ "์์ ์ด ์ค์๋ฅผ ๋ค๋ฃน๋๋ค.
MIDDLEWARE: ๊ฑด๋ฌผ ์ ๊ตฌ ๋ณด์ ๊ฒ์๋
์์ฒญ์ด ๋ค์ด์ค๋ฉด ํ๋ฉด์ ๋ง๋๋ ์ฝ๋์ ๋ฟ๊ธฐ ์ ์ ์ด ๋ชฉ๋ก์ ์์์๋ถํฐ ์ฐจ๋ก๋ก ํต๊ณผํฉ๋๋ค.
SecurityMiddleware: ๊ธฐ๋ณธ ๋ณด์ ์ค์ ์ ์ฉSessionMiddleware: "์ด ๋ฐฉ๋ฌธ์๊ฐ ๋๊ตฌ์๋๋ผ?"๋ฅผ ์ฟ ํค๋ก ํ์ธํด ์ธ์ ์ ๊บผ๋ด ๋CommonMiddleware,CsrfViewMiddleware: ์ฃผ์ ์ ๋ฆฌ์ ์์กฐ ์์ฒญ ๋ฐฉ์ด ๊ฐ์ ๊ณตํต ๊ฒ์ฌAuthenticationMiddleware: ์ธ์ ์ ๋ฐํ์ผ๋ก ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ฅผ ์ฐพ์ ๋
๊ทธ๋์ ์ธ์
๊ณผ ๋ก๊ทธ์ธ ์ฌ์ฉ์๋ฅผ ๊บผ๋ด๋ ์ฝ๋๋ฅผ ์ง์ ์ฐ์ง ์์๋๋ฐ๋, ๋ทฐ์์ request.session๊ณผ request.user๋ฅผ ๋ฐ๋ก ์ธ ์ ์์ต๋๋ค.
request.session:SessionMiddleware๊ฐ ์ฑ์๋๋ค.request.user:AuthenticationMiddleware๊ฐ ์ฑ์๋๋ค(8ํธ).
๐ AI ํ๋ก์ ํธ๋ฅผ ๋ฐ์ผ๋ฉด ์ด ์์๋ก ์ด์ด ๋ณด์ธ์:
settings.pyโurls.py(2ํธ) โmodels.py(5ํธ).wsgi.py,asgi.py,__init__.py,tests.py๋ ์ง๊ธ์ "์๊ตฌ๋" ์ ๋๋ฉด ์ถฉ๋ถํฉ๋๋ค.
๐ ๋ณด๋์ค: ์ค์ ์์๋ ๋ชฉ๋ก์ด ๋์ด๋ฉ๋๋ค
AI๊ฐ ๋ง๋ ํ๋ก์ ํธ๋ ์ค์ ์๋น์ค์์๋ ๊ธฐ๋ณธ 6์ค ์๋์ ์ธ๋ถ ํจํค์ง๊ฐ ๋ ๋ถ์ต๋๋ค. ๊ฐ์ฅ ํํ ๋ง๋๋ ๊ฒ์ด allauth์
๋๋ค. ์ด๋ฉ์ผ ๊ฐ์
, ์์
๋ก๊ทธ์ธ์ฒ๋ผ Django ๊ธฐ๋ณธ auth์ ์๋ ํ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ค๊ณ ๋ฑ๋กํฉ๋๋ค. ์ด ํ์ฐจ ์์ ์์๋ config/settings.py์ community ์ฑ๋ง ์ถ๊ฐํด ์ฐ๋ฉด ๋ฉ๋๋ค.
์ฝ์ํ๋ ์ง๋ฌธ์ ๋ต
settings.py๋ฅผ ๊ฑด๋๋ฆฐ ์ ์ด ์์ด๋ ์๋ฒ๊ฐ ๋จ๋ ์ด์ ๋, startproject๊ฐ ์ด๋ฏธ ๋์ํ๋ settings.py๋ฅผ ๋ง๋ค์ด ์ฃผ๊ณ , manage.py์ DJANGO_SETTINGS_MODULE ์ค์ด ๊ทธ ํ์ผ์ ๊ฐ๋ฆฌํค๋ฉฐ, runserver๊ฐ ๊ทธ ํ์ผ์ importํด ์ฑ๊ณผ ๋ฏธ๋ค์จ์ด๋ฅผ ๋ก๋ฉํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๊ฐ ์ง์ผ ํ๋ ๋ถ๋ถ์ ์ด๋ ๊ฒ ์ข์์ง๋๋ค.
| ํ๋ ์ผ | ๋ด๊ฐ ์ง์ผ ํ๋ ๊ฒ | Django๊ฐ ํ๋ ๊ฒ |
|---|---|---|
| ์๋ฒ ์ค์ ยท๊ตฌ๋ | ํ์ํ ๋ settings.py ๊ฐ ์์ |
๊ธฐ๋ณธ ์ค์ ํ์ผ ์์ฑ, runserver๊ฐ ์ฝ์ด์ ๋ก๋ฉ |
| ์ฃผ์ ์ฐ๊ฒฐ | urls.py์ ๊ฒฝ๋ก ์ถ๊ฐ(2ํธ) |
๋ค์ด์จ ์ฃผ์๋ฅผ urls.py์ ๋์กฐ |
| ํ๋ฉด ์๋ต | views.py์ ํจ์(3ํธ) |
์์ฒญ์ ๋ฐ์ ๊ฐ์ฒด๋ก ๋ง๋ค๊ณ ์๋ต์ ๋๋ ค๋ณด๋ |
| ๋ฐ์ดํฐ | models.py ์ค๊ณ(5ํธ) |
ํ ์ด๋ธ ์์ฑ๊ณผ ์กฐํ(๋ง์ด๊ทธ๋ ์ด์ ์ 6ํธ) |
| ๋ก๊ทธ์ธยท์ธ์ | ๋ก๊ทธ์ธ ํ๋ฉด ํ๋ฆ | ์ธ์
๊ด๋ฆฌ, ๋น๋ฐ๋ฒํธ ํด์ฑ(๋จ๋ฐฉํฅ ํด์ ์ ์ฅ, ์ํธํ ์๋), request.user ์ฑ์ฐ๊ธฐ(8ํธ) |
| ๊ด๋ฆฌ์ ํ๋ฉด | admin.py์ ๋ชจ๋ธ ๋ฑ๋ก |
๊ด๋ฆฌ์ ํ์ด์ง ์ ์ฒด |
โ ๏ธ ์์ฃผ ๊นจ์ง๋ ์ง์
1. ์ฑ์ ๋ง๋ค๊ณ ๋ฑ๋กํ์ง ์์์ ๋
startapp๋ง ํ๊ณ INSTALLED_APPS์ ๋ฃ์ง ์์ผ๋ฉด Django๋ ๊ทธ ์ฑ์ด ํ๋ก์ ํธ์ ์ผ๋ถ์ธ์ง ๋ชจ๋ฆ
๋๋ค. ๊ทธ๋์ ๋ชจ๋ธ์ ์์ฑํ๊ณ makemigrations๋ฅผ ํด๋ ์ฑ์ ๊ฑด๋๋๋๋ค.
No changes detected
๋ ๊ทธ ๋ชจ๋ธ์ ์ํฌํธํ๋ ์๊ฐ ์ด๋ฐ ์๋ฌ๊ฐ ๋ฉ๋๋ค.
RuntimeError: Model class community.models.Post doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
(์ฐธ๊ณ ๋ก no such table: community_post ๊ฐ์ OperationalError๋ ์ฑ์ ๋ฑ๋กํ๋๋ฐ ๋ง์ด๊ทธ๋ ์ด์
์ ๋ง๋ค์ง ์์๊ฑฐ๋ ์ ์ฉํ์ง ์์ ์ฑ ์ฟผ๋ฆฌํ ๋ ๋์ค๋ ๋ณ๊ฐ์ ์ฆ์์
๋๋ค.)
ํด๊ฒฐ ์์:
1. INSTALLED_APPS์ 'community.apps.CommunityConfig'(๋๋ 'community')๋ฅผ ์ถ๊ฐํฉ๋๋ค.
2. python manage.py makemigrations community
3. python manage.py migrate
(๋ง์ด๊ทธ๋ ์ด์ ์ 6ํธ์์ ์์ธํ ๋ค๋ฃน๋๋ค.)
2. ๋์ ์ (.)์ ๋นผ๋จน์์ ๋
django-admin startproject config์ฒ๋ผ ์ ์ด ์์ผ๋ฉด ๋ฐ๊นฅ์ config/ ํ๋ก์ ํธ ํด๋๊ฐ ํ๋ ๋ ์๊ธฐ๊ณ , ๊ทธ ์์ manage.py์ ์์ชฝ config/ ํจํค์ง๊ฐ ๋ค์ด๊ฐ config/config/ ์ค์ฒฉ ๊ตฌ์กฐ๊ฐ ๋ฉ๋๋ค. ์ด๋ manage.py๊ฐ ์๋ ๋ฐ๊นฅ ์์น์์ python manage.py runserver๋ฅผ ์น๋ฉด ์ด๋ฐ ์๋ฌ๊ฐ ๋ฉ๋๋ค.
python: can't open file '.../manage.py': [Errno 2] No such file or directory
manage.py๋ ๋ฐ๊นฅ config/ ํด๋ ์์ ์์ผ๋, cd config๋ก ๋ค์ด๊ฐ ๋ค ์คํํ์ธ์. ๋๋ ์ฒ์๋ถํฐ ์ ์ ๋ถ์ฌ ๋ค์ ๋ง๋ค์ด๋ ๋ฉ๋๋ค.
๐ฎ ์ง์ ํด๋ณด๊ธฐ
๋ด ํ๋ก์ ํธ ๊ธฐ์ค์ผ๋ก ๋ฐ๋ผ ํ์ธ์. ์ค์ ํ์ผ์ config/settings.py์
๋๋ค(ํ
ํฌ์ฐฝ ์ฌ์ดํธ๋ config/settings/base.py๋ผ์ ๊ฒฝ๋ก๊ฐ ๋ค๋ฆ
๋๋ค).
python manage.py runserver๋ก ๊ธฐ๋ณธ ํ์ ํ๋ฉด(๋ก์ผ ๊ทธ๋ฆผ)์ ๋จผ์ ๋์ ๋ด ๋๋ค.manage.py๋ฅผ ์ด์ดDJANGO_SETTINGS_MODULE์ค์ ์ฐพ๊ณ ,config/settings.py์INSTALLED_APPS๊ธฐ๋ณธ 6์ค๊ณผMIDDLEWARE์SessionMiddleware,AuthenticationMiddleware๋ ์ฐพ์ ๋ด ๋๋ค.- ์๋ฒ๋ฅผ ์ผ ์ฑ๋ก
INSTALLED_APPS์์'django.contrib.staticfiles',์ค ์์#์ ๋ถ์ฌ ์ ์ฅํฉ๋๋ค. ํ์ผ์ด ๋ฐ๋๋ฉด ์๋ฒ๊ฐ ์๋์ผ๋ก ๋ค์ ์์๋๋ ํฐ๋ฏธ๋์ ์ง์ผ๋ณด์ธ์. - ๊ธฐ๋ ๊ฒฐ๊ณผ: ์๋ฒ๋ ์๋ฌ ์์ด ๋ค์ ๋จ๊ณ , ํ์ ํ๋ฉด๋ ๊ทธ๋๋ก ๋ณด์
๋๋ค. ๋ค๋ง ๋ธ๋ผ์ฐ์ ์์
/admin/์ ๋ค์ด๊ฐ๋ฉด CSS๊ฐ ๋น ์ง ๋ฐ๋ฐํ ๋ก๊ทธ์ธ ํ๋ฉด์ด ๋ณด์ด๊ณ , ํฐ๋ฏธ๋์๋/static/admin/...๊ฐ์ ์ฃผ์์ 404 ์ค์ด ์ฐํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ ์๋ฒ์ ์ ์ ํ์ผ ์ ๊ณต์staticfiles์ฑ์ด ๋งก๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ผ๋ ์ค์ ๋ก ๋ณด์ด๋ ๋ชจ์ต์ ๊ทธ๋๋ก ๋ฉ๋ชจํ์ธ์. #์ ์ง์ ์๋๋๋ก ๋๋ ค๋๊ณ/admin/ํ๋ฉด์ ๋์์ธ์ด ๋์์ค๋์ง ํ์ธํฉ๋๋ค.
๋งํ๋ฉด ํ ํฌ์ฐฝ ์ปค๋ฎค๋ํฐ์ ์คํฌ๋ฆฐ์ท๊ณผ ํจ๊ป ์ง๋ฌธํด ์ฃผ์ธ์.
โญ๏ธ ๋ค์ ํธ ์๊ณ
๋ธ๋ผ์ฐ์ ์ /posts/๋ฅผ ์ณค์ ๋ Django๋ ์๋ง์ ํ์ผ ์ค ์ด๋๋ก ์๋ดํ ๊น์? 2ํธ์์ urls.py์ ํ ์ค์ ํด๋ถํฉ๋๋ค.
๐ ์๋ฆฌ์ฆ: AI๊ฐ ์ง์ค Django, ์ด์ ์๊ณ ์๋๋ค ยท 1ํธ (0~9ํธ, ์ด 10ํ)
ํ
ํฌ์ฐฝ ์ฐ๊ตฌํ
๋ณธ ์นผ๋ผ์ AI ๋ณด์กฐ๋ก ์์ฑ๋์์ผ๋ฉฐ, ์ฝ๋ยท์์๋ ํ์ต์ฉ์
๋๋ค.
์ค๋ ๊ธ์์ ํ๋ ๊ฐ์ ธ๊ฐ๋ค๋ฉด?
๋ค ์ฝ๊ณ ๋จ์ ํ ๊ฐ์ง๋ฅผ ํ ์ค๋ก ์ ์ด ์ฃผ์ธ์. ๋ค๋ฅธ ๋ ์์๊ฒ๋, ๋ค์ ๊ธ์ ์ฐ๋ ์ฐ๊ตฌํ์๊ฒ๋ ๊ฐ์ฅ ์ข์ ์ ํธ๊ฐ ๋ฉ๋๋ค.
AI ์ฐ๊ตฌ์ 5๋ช ์ด 4๋ฒ ์ฌ์ฌํ๊ณ 5๋ฒ ๊ณ ์ณ ์ด ๊ธ์ ๋๋ค
- 4ํธ์ง ์ฌ์ฌ
- 5์ฌ์งํ
- 2ํ๋ก
- 8์๊ฐ 55๋ถ์ ์ ๊ธฐ๊ฐ
๋๊ธ (0)
์์ง ๋๊ธ์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋๊ธ์ ์์ฑํด๋ณด์ธ์!