Studying Django, Python Web Application Framwork.
$ venv\Scripts\activate
$ python -m django --version
$ django-admin startproject [project_name]
$ python manage.py runserver [Port num]
ν¬νΈ λ²νΈλ₯Ό λ€μ μ
λ ₯νλ©΄ ν΄λΉ μ
λ ₯κ°μ ν¬νΈλ‘ νλ μλ²κ° μ΄λ¦°λ€.
ν¬νΈλ κΈ°λ³Έμ μΌλ‘ 8000μΌλ‘ μ€μ λμ΄ μλ€.
$ python manage.py startapp [Application name]
Project
λ λ€μμ app
μ ν¬ν¨ν μ μκ³ , app
μ λ€μμ project
μ ν¬ν¨λ μ μλ€.
$ python manage.py migrate
$ python manage.py makemigrations [Application name]
app
μ Project
μ ν¬ν¨μν΄μ μ리기 μνμ¬, [Project Name]/setting.py
μ λ€μ΄κ° [Application Name].apps.[Application Name]Config
λ₯Ό μΆκ°ν΄μ€λ€.
makemigrations
λ₯Ό μ§ννκΈ° μ μ app
μ ν¬ν¨μ¬λΆλ₯Ό μ리기 μνμ¬ μ νλμ΄μΌ ν μμ
μ΄λ€.
$ python manage.py sqlmigrate [Application name] [number]
[number]_initial.py
μ κ°μ΄ migration
μ΄ λμμμ νμΈνμλ€λ©΄ sqlmigrate
λͺ
λ Ήμ ν΅ν΄ sql
λ¬Έμ νμΈν μ μλ€.
$ python manage.py shell
from [Application name].models import [Class name] # Import the model classes we just wrote
from django.utils import [Library name] # Django Util Library
$ python manage.py createsuperuser
Username (leave blank to use '[Local Name]'): [Admin name that you want to create]
Email address : [Your email address]
Password: [Your password]
Password (again): [Your password again]
Superuser created successfully.
django.contrib.auth
λͺ¨λμμ μ 곡λλ Django
μμ μ 곡λλ μΈμ¦ νλ μμν¬μ΄λ€.
from django.template import loader
from django.http import HttpResponse
def index(request):
...
template = loader.get_template('[Template Directory]')
return HttpResponse(template.render((parameter), request))
* Directory
(Application Name)/
template/
(Custom - Application Name)/
index.html
...
# Different Way - Using render()
def index(request):
...
return render(request, '[Template Directory]', (parameter))
from django.shortcuts import get_object_or_404
from django.shortcuts import render
from .models import Question
...
def func(request, param):
question = get_object_or_404((Django Model), (Keyword Parameter)))
return render(request, '[Template Directory]', {'Key': value})
Project
λ΄μλ μλ§μ Application
μ΄ μ‘΄μ¬ν μ μκΈ° λλ¬Έμ νλ μ½λ©νμμ κ²½μ°μ μ΄λ€ Application
μ View
μμ URLμ μμ±νλ μ§μ λν΄ μκ³ μ URLconf
μ namespace
λ₯Ό μΆκ°νλ€.
# [Application Name]/urls.py
from django.urls import path
from . import views
app_name = '[Application Name]'
urlpatterns = [
path('', views.index, name='index'),
path(...),
...,
]
<!-- [Application Name]/templates/[Application Name]/index.html -->
<!-- νλμ½λ©νλ λΆλΆμ μμ ν΄λ³΄μ! -->
<li><a href="{% url '[Path - Views Name]' (Parameter) %}">{{ (Data Binding) }}</a></li>
μμ μ½λλ νλμ½λ©λ μ½λ
---
<li><a href="{% '[Application Name]:[Path - Views Name]' (Parameter) %}">{{ (Data Binding) }}</a></li>
λ€μκ³Ό κ°μ΄ `Path` λͺ
μμ `Application Name` + `:` μ λ§λΆμ¬ `namespace`λ₯Ό μ΄μ©νμ.