
pyenv: ์ฌ๋ฌ ํ์ด์ฌ ๋ฒ์ ์ ์ฝ๊ฒ ์ค์นํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ๋๊ตฌpyenv-virtualenv: ํ๋ก์ ํธ๋ณ ๊ฐ์ํ๊ฒฝ์ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ pyenv ํ๋ฌ๊ทธ์ธ์ฆ, ํ๋ก์ ํธ๋ง๋ค ๋ค๋ฅธ Python ๋ฒ์ ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์ถ์ ์ฌ๋๋ค์๊ฒ ํ์ ๋๊ตฌ
venv์ ๋ฌ๋ฆฌ ํด๋ ์ ๊ทผ ์ ์๋์ผ๋ก ๊ฐ์ํ๊ฒฝ ํ์ฑํ.python-version ํ์ผ์ ํตํด ํด๋น ๋๋ ํ ๋ฆฌ๋ง์ ํ์ด์ฌ ํ๊ฒฝ ์ ์ฉbrew install pyenvbrew install pyenv-virtualenvbash or zsh)echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
source ~/.zshrc
Which $SHELL๋ก ๋ณธ์ธ์ ์ ธ ํ์ธ ํ,.bashrcor.zshrc์ค์
pyenv --version
pyenv virtualenv --versionpyenv install --listpyenv install 3.10.12pyenv virtualenv 3.10.12 myenv310cd myproject
pyenv local myenv310 # .python-version ํ์ผ ์์ฑ๋จํด๋น ํด๋์ ์ง์ ํ๋ฉด ์๋์ผ๋ก ๊ฐ์ํ๊ฒฝ์ด ํ์ฑํ๋ฉ๋๋ค.
take myproject
take๋ช ๋ น์ด๋ ํด๋ ์์ฑ + ๋ฐ๋ก ์ด๋๊น์ง! (brew install coreutils๋ก ์ค์น ๊ฐ๋ฅ)
pip install django
cd ..
pip install flask
๊ฐ๊ฐ์ ํด๋์ ๋ฐ๋ผ ๋ ๋ฆฝ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ง๋๋ค.
Settings > Languages & Frameworks > Djangomanage.py ์์นdjango-admin startproject config .
django-admin์ Django ์ค์น ์ ํจ๊ป ์ ๊ณต.์ ์ ๋ถ์ด๋ฉด ํ์ฌ ํด๋์ ์์ฑ๋จpython manage.py runserver
manage.py๋ Django์์ ํต์ฌ ๊ด๋ฆฌ ๋๊ตฌ์ ๋๋ค (Java์main()๊ณผ ์ ์ฌ)
poetry init # pyproject.toml ์์ฑ
pyproject.toml: ์ค์นํด์ผ ํ ํจํค์ง ๋ชฉ๋กpoetry.lock: ์ค์ ์ค์น๋ ์ ํํ ํจํค์ง ๋ฒ์ ๊ธฐ๋กpoetry add django
poetry install
ํ๋ก์ ํธ๋ฅผ ์ฌํํ๊ณ ์ถ์ ๋,
.toml๊ณผ.lockํ์ผ๋ง ๋ณต์ฌํ๋ฉด ๋!
Current Python version (3.12.2) is not allowed by the project (>=3.13)
ํด๊ฒฐ
poetry env use 3.13
python manage.py startapp myapp
์์ฑ๋๋ ๊ตฌ์กฐ:
myapp/
์์ฑ๋๋ ๊ตฌ์กฐ:
myapp/
โโ models.py # DB ๋ชจ๋ธ ์ ์
โโ views.py # ํด๋ผ์ด์ธํธ ์์ฒญ ์ฒ๋ฆฌ
โโ admin.py # ๊ด๋ฆฌ์ ํ์ด์ง ์ค์
โโ apps.py # ์ฑ ์ค์
โโ tests.py # ํ
์คํธ ์ฝ๋
โโ migrations/ # DB ๋ณ๊ฒฝ ๊ธฐ๋ก
โโ __init__.py # ํจํค์ง ์ธ์์ฉ
settings.py > INSTALLED_APPS์ ์ถ๊ฐํด์ผ Django์์ ์ธ์ํจ
python manage.py makemigrations myapp
python manage.py migratepython manage.py createsuperuserdb.sqlite3 -> DB Browser for SQLite๋ก ํ์ธ ๊ฐ๋ฅ# ํฌํจ๋ ๋จ์ด ๊ฒ์
Bookmark.objects.filter(name__icontains='๋ค')
# ์์ํ๋ ๋จ์ด ๊ฒ์
Bookmark.objects.filter(name__startswith='๋ค')
# ํน์ ๋ฆฌ์คํธ ์์ ์๋ ๊ฐ ๊ฒ์
Bookmark.objects.filter(name__in=['๊ตฌ๊ธ','๋ค์ด๋ฒ'])
# ์ซ์ ์กฐ๊ฑด ๊ฒ์
Bookmark.objects.filter(id__gte=2) # gte, gt, lte, lt
Bookmark.objects.create(name='์ผํ', url='https://yahoo.com')
bookmark = Bookmark(name='์ผํ2', url='https://yahoo.com')
bookmark.save()
b = Bookmark.objects.first()
b.id = None
b.name = '๋ค์ด๋ฒ2'
b.save()
์ฐธ๊ณ : Django๋ MVC ํ๋ ์์ํฌ๋ณด๋ค ๋จผ์ ๋์์ ์ด๋ฆ๋ง ๋ค๋ฅด๊ณ ๊ตฌ์กฐ๋ ๊ฑฐ์ ๊ฐ์
admin.site.register(Model) ํ์ค๋ก ์์ฑ)