django 10

django_09_model_relationship

09_django_model_relationship ManyToManyField https://docs.djangoproject.com/en/3.1/ref/models/fields/#manytomanyfield M:N(이하 다대다) 관계를 나타내기 위해 사용하는 필드 하나의 필수 위치인자(다대다 관계로 설정할 모델 클래스)가 필요하다. Arguments related_name ForeignKey의 related_name과 동일 through django는 다대다 관계를 관리하는 중개 테이블을 자동으로 생성한다. 하지만, 중간 테이블을 직접 지정하려면 through 옵션을 사용하여 중개 테이블을 나타내는 Django 모델을 지정할 수 있다. 일반적으로 추가 데이터를 다 대다 관계와 연결하려는 경우(extr..

Web/Django 2021.04.01

django_08_model_relationship

08_django_model_relationship https://docs.djangoproject.com/en/3.1/ref/models/fields/#module-django.db.models.fields User - Article # articles/models.py from django.conf import settings class Article(models.Model) user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) ... $ python manage.py makemigrations # 첫번째 상황(null 값이 허용되지 않는 user_id 가 아무 값도 없이 article 에 추가되려 하기 때문) $ p..

Web/Django 2021.03.29

django_07_custom_authentication

07_django_custom_authentication User model 대체하기 https://docs.djangoproject.com/en/3.1/topics/auth/customizing/#auth-custom-user 일부 프로젝트에서는 Django의 내장 유저 모델이 제공하는 인증 요구사항이 적절하지 않을 수 있다. django는 custom model을 참조하는 AUTH_USER_MODEL 설정을 제공하여 default user model을 재정의(override)할 수 있도록 한다. django는 새 프로젝트를 시작하는 경우 기본 사용자 모델이 충분하더라도 커스텀 유저 모델을 설정하는 것을 강력하게 권장(highly recommended) 커스텀 유저 모델은 기본 사용자 모델과 동일하게 ..

Web/Django 2021.03.25

django_06_model_relationship

06_django_model_relationship https://docs.djangoproject.com/ko/3.1/ref/models/fields/#module-django.db.models.fields.related Foreign Key 개념 외래 키(외부 키) RDBMS에서 한 테이블의 필드 중 다른 테이블의 행을 식별할 수 있는 키 참조하는 테이블에서 1개의 키(속성 또는 속성의 집합)에 해당하고 이는 참조되는 측의 테이블의 기본 키를 가리킴 참조하는 테이블의 속성의 행 1개의 값은, 참조되는 측 테이블의 행 값에 대응 이 때문에 참조하는 테이블의 행에는, 참조되는 테이블에 나타나지 않는 값을 포함할 수 없음 참조하는 테이블의 행 여러 개가, 참조되는 테이블의 동일한 행을 참조할 수 있음 특징..

Web/Django 2021.03.24

django_05_auth

05_django_auth Accounts app 이름이 반드시 accounts 일 필요는 없지만, auth 관련 기본 설정들이 accounts로 내부적으로 사용되고 있기 때문에 되도록 accounts로 명명 권장 $ python manage.py startapp accounts # settings.py INSTALLED_APPS = [ 'articles', 'accounts', ... # myform/urls.py urlpatterns = [ path('accounts/', include('accounts.urls')), ] # accounts/urls.py from django.urls import path from . import views ..

Web/Django 2021.03.23

django_04_static_media_files

04_django_staticfiles Static files 웹 사이트의 구성 요소 중에서 image, css, js 파일과 같이 해당 내용이 고정되어 응답을 할 때 별도의 처리 없이 파일 내용을 그대로 보여주면 되는 파일 https://docs.djangoproject.com/en/3.1/howto/static-files/#managing-static-files-e-g-images-javascript-css Static files 구성 django.contrib.staticfiles 앱이 INSTALLED_APPS에 있는지 확인 setting.py에 STATIC_URL 정의 템플릿에서 static 템플릿 태그를 사용하여 static file이 있는 상대경로를 빌드 앱에 static file 저장하기 ..

Web/Django 2021.03.18

django_03_form

03_django_form Django 프로젝트의 주요 유효성 검사 도구들 중 하나이며, 공격 및 데이터 손상에 대한 중요한 방어 수단이다. Django's role in forms Django는 forms에 관련된 작업의 세 부분을 처리한다. 렌더링을 위한 데이터 준비 및 재구성 데이터에 대한 HTML forms 생성 클라이언트로 부터 받은 데이터 수신 및 처리 이 모든 작업을 수동으로 수행하는 코드를 작성할 수 있지만 Django가 모든 작업을 처리 할 수 있다. Form Class https://docs.djangoproject.com/ko/3.1/topics/forms/#working-with-forms Django form 관리 시스템의 핵심이다. form내 field들, field 배치..

Web/Django 2021.03.17

django_02_crud

02_django_crud 02_django_crud 템플릿 폴더 구조 및 url 분리 articles/urls.py 파일 생성 프로젝트 폴더 url 설정 base.html 설정 {% block content %} {% endblock %} # crud/settings.py 'DIRS': [BASE_DIR / 'crud' / 'templates'], 기본 페이지 설정 # articles/urls.py from django.urls import path from . import views app_name = 'articles' urlpatterns = [ path('', views.index, name='index'), ..

Web/Django 2021.03.11

django_01_model

01_django_model Model 웹 어플리케이션의 데이터를 구조화하고 조작하기 위한 도구 개념 모델은 단일한 데이터에 대한 정보를 가짐 일반적으로 각각의 모델(클래스)는 하나의 데이터베이스 테이블과 매핑 모델은 부가적인 메타데이터를 가진 DB의 구조(layout)를 의미 Database 체계화된 데이터의 모임 (집합) 기본 구조 쿼리(Query) 데이터를 조회하기 위한 명령어 (주로 테이블형 자료구조에서) 조건에 맞는 데이터를 추출하거나 조작하는 명령어 스키마 (Schema) —> 뼈대(Structure) 데이터베이스에서 자료의 구조, 표현 방법, 관계 등을 정의한 구조 데이터베이스 관리 시스템(DBMS)이 주어진 설정에 따라 데이터베이스 스키마를 생성하며, 데이터베이스 사용자가 자료를 저장, 조..

Web/Django 2021.03.11

django_00_Intro

00_django_intro Intro python version 3.8 확인 vscode django extension 설치 및 설정 확인 설치 $ pip install django 특정 버전 설치 $ pip install django==x.x.x 설치 확인 $ pip list # python -m django --version 프로젝트 생성 [주의] project 를 생성할 때, Python 이나 Django 에서 사용중인 이름은 피해야 한다. - 도 사용할 수 없다. (ex. django, test, class, django-test...) $ django-admin startproject first_project 서버 실행 $ python manage.py runserver 프로젝트 구조 __in..

Web/Django 2021.03.11