[Django] Model

Jingi·2024년 3월 15일

Web

목록 보기
9/40
post-thumbnail

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 적용

  • path 함수의 name 키워드 인자를 정의
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
profile
데이터 분석에서 백엔드까지...

0개의 댓글