Python's Framework
$ python -m pip install Django
$ python -m django --version
๊ฐ ํ๋ก์ ํธ์ ํ๊ฒฝ์ค์ ์ ๋ํด ๋ ๋ฆฝ์ ์ํค๊ธฐ ์ํด ๊ฐ์ํ๊ฒฝ์ ์ค์นํ๋ค
pip install virtualenv
๐zsh: command not found: ์ค๋ฅ์
ํ๊ฒฝ๋ณ์ ์ค์
code ~/.zshrc
export PATH=/ํ๋ก๊ทธ๋จ ๊ฒฝ๋ก:$PATH
๊ฐ์ํ๊ฒฝ ๋ง๋ค๊ธฐ
$ virtualenv myenv
$ django-admin startproject mysite
myenv/
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
$ python manage.py `๋ช
๋ น์ด`
๐ฃ ๋ช ๋ น์ด
$ python manage.py startapp myapp
myenv/
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
myapp/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
myapp/view.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello Django")
myapp/urls.py
from django.urls import path
from . import views
urlpatterns = [
# /myapp/
path('', views.index, name='index'),
]
mysite/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('myapp/', include('myapp.urls')),
#include๋ฅผ ์ฌ์ฉํ์ฌ url์ ๊ฐ์ ธ์ ์์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์๋ค
path('admin/', admin.site.urls),
]
๐html ํ์ผ์ view.py๋ก ํ๋ฒ์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ๋ ์๋ค
view.py
from django.shortcuts import render
def index(request):
name = "name"
return render(request, 'myapp/templates/index.html', {
'name': name,
}
$ python manage.py makemigrate
$ python manage.py createsuperuser
๐์ด๊ธฐ ํ๋ฉด
๐๊ด๋ฆฌ์ ๊ถํ page
myapp/models.py
from django.db import models
class Model(models.Model):
name = models.CharField(max_length=50) #๊ธ์ ์๋ฅผ ์ ์ํ ๋ ์ฌ์ฉ
title = models.CharField(max_length=50)
contents = models.TextField() #๊ธ์ ์๊ฐ ์ ํ์ด ์์ ๋ ์ฌ์ฉ
url = models.URLField() #url์ ๋ฑ๋กํ ๋ ์ฌ์ฉ
email = models.EmailField() #email์ ๋ฑ๋กํ ๋ ์ฌ์ฉ
cdate = models.DateTimeField(auto_now_add=True) #๋ ์ง์ ์๊ฐ์ ์ ์ ํ ๋ ์ฌ์ฉ
MODEL ์ฐธ์กฐ
https://docs.djangoproject.com/en/2.0/ref/models/fields/#field-types
๊ด๋ฆฌ์ page๋ก app ๋ณ๊ฒฝ
myapp/admin.py
from django.contrib import admin
from .models import Model
# Register your models here.
admin.site.register(Model)
myapp/Templates/index.html
{% for Model in Model_list %}
<li>
<a href="/view">{{ Model.title }}</a> | {{ Model.name }}
</li>
{% endfor %}
ํ ํ๋ฆฟ ์์คํ ์ ์ด์ฉํ์ฌ ์ ์ ์ธ HTML์ ๋์ ์ธ Python์ ์ธ์ด๋ก ์ฌ์ฉ๊ฐ๋ฅํ๊ฒ ํด์ค ์ ์๋ค
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp.apps.MyappConfig',
]
$ python manage.py makemigrations myapp
๋ณ๊ฒฝ์ฌํญ DB์ ์ ์ฅ
$ python manage.py migrate
$ python manage.py runserver
๋ช ๋ น์ด ๋ค์ ์ํ๋ ํฌํธ ๋ฒํธ๋ฅผ ์ ์ด ์ฌ์ฉํ ์ ์๋ค
$ python manage.py runserver 8080