Django URLs
URL dispatcher
- URL 패턴을 정의하고 해당 패턴이 일치하는 요청을 처리할 view 함수를 연결
App URL mapping
- 각 앱에 URL을 정의하는 것
- 프로젝트와 각 앱이 URL을 나누어 관리를 편하게 하기 위함
- URL을 각각의 APP에서 관리
include()
- 프로젝트 내부 앱들의 URL을 참조할 수 있도록 매핑하는 함수
- URL의 일치하는 부분까지 잘라내고, 남은 문자열 부분은 후속 처리를 위해 include된 URL로 전달
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('articles/', include('articles.urls')),
path('pages/', include('pages.urls')),
]
Naming URL patterns 적용
from django.urls import path
from . import views
app_name = 'articles'
urlpatterns = [
path('index/', views.index, name='index'),
path('dinner/', views.dinner, name='dinner'),
path('search/', views.search, name='search'),
path('throw/', views.throw, name='throw'),
path('catch/', views.catch, name='catch'),
path('greeting/<str:name>/', views.greeting, name='greeting'),
path('articles/<int:num>/', views.detail, name='detail'),
]
URL 표기변화
{% extends "base.html" %}
{% block content %}
<h1>안녕하세요, {{ name }}</h1>
<a href="{% url "articles:dinner" %}">dinner</a>
<a href="{% url "articles:search" %}">search</a>
<a href="{% url "articles:throw" %}">throw</a>
{% endblock content %}
- {% url 'url name' arg1 arg2 %}
- 주어진 URL 패턴의 이름과 일치하는 절대 경로 주소를 반환
Django Model
Django Model
- DB의 테이블을 정의하고 데이터를 조작할 수 있는 기능들을 제공
- 테이블 구조를 설계

- Model이라는 부모 클래스를 상속받음
Migrations
- Model 클래스의 변경사항(필드 생성, 수정 삭제 등)을 DB에 최종 반영하는 방법

Model Field
- DB 테이블의 필드(열)을 정의하며, 해당 필드에 저장되는 데이터 타입과 제약조건을 정의
CharField()
TextField()
DatetimeField()
- 날짜와 시간을 넣을 때 사용
- auto_now : 데이터가 저장될 때마다 자동으로 현재 날짜 시간을 저장
- auto_now_add : 데이터가 처음 생성될 때만 자동으로 현재 날짜시간을 저장
Django admin site
admin 계정 생성
- email은 선택사항이기 때문에 입력하지 않고 진행 가능
- 비밀번호 입력시 보안상 터미널에 출력되지 않음
- python manage.py createsuperuser
