1. Project
1.1. App
1.1.1. View
1.1.1.1. views.py
1.1.1.1.1. render function
1.1.1.1.2. 주요 함수
1.1.1.2. Display를 위한 파일
1.1.1.3. Generic View Class
1.1.1.3.1. generic.ListView
1.1.1.3.2. generic.DetailView
1.1.2. templates
1.1.3. urls.py
1.1.3.1. 함수
1.1.3.1.1. path()
1.1.4. models
1.1.4.1. models.py
1.1.4.1.1. database table
1.2. Composition
1.2.1. settings.py
1.2.1.1. Database Setting
1.2.1.1.1. DATABASES
1.2.2. templates
1.2.3. urls.py
1.2.3.1. url hooking
1.2.3.2. 프로젝트 폴더 아래에 하나만 있는 파일임
2. Databases
2.1. SQLite
2.2. Object Relational Mapper
2.2.1. objects_all()
2.2.2. objects()
2.2.3. get()
2.3. Migration
3. Templates
3.1. library
3.1.1. django.template
3.1.1.1. engines[]
3.1.1.2. render()
3.1.1.2.1. dictionary
3.1.2. django.template.loader
3.1.2.1. from_string()
3.2. 의미
3.2.1. Presentation만을 위한 로직
3.2.1.1. HTML을 생성하는 목적
3.2.1.2. Django Template Language
3.3. Template 언어
3.3.1. Syntax
3.3.1.1. for ... in ...
3.3.1.1.1. endfor
3.3.1.1.2. forloop.count
3.3.1.2. load static
3.3.1.3. extends ...
3.3.1.4. block ...
3.3.1.4.1. endblock
3.3.1.5. static
3.3.1.6. url
3.3.1.6.1. path 함수에서 이름을 지정해 둔 것을 사용함
3.3.1.7. pluralize
3.3.2. 분류
3.3.2.1. 템플릿 변수
3.3.2.1.1. {{ 와 }} 로 싸여 있음
3.3.2.1.2. Primitive 데이터 값이 사용
3.3.2.2. 템플릿 태그
3.3.2.2.1. {% 와 %} 로 싸여있음
3.3.2.2.2. 조건, 반복문이 들어갈 수 있음
3.3.2.3. 템플릿 필터
3.3.2.3.1. | 연산자로 변수의 값을 특정한 포맷으로 변형
3.3.2.3.2. 예제
3.3.2.4. 코멘트
3.3.2.4.1. {# #}
3.3.2.4.2. {% coment %} ~ {% endcomment %}
3.3.2.5. HTML Escape
3.3.2.5.1. <, >, ', ", & 과 같은 문자가 나올 경우 변환 목적
3.3.2.5.2. 예제
3.3.3. 확장
4. Commands
4.1. 프로젝트 생성
4.1.1. django-admin.exe startproject [projectname]
4.1.2. django 프로그램으로 프로젝트의 framework을 생성함
4.1.2.1. 생성되는 파일
4.1.2.1.1. manage.py
4.1.2.1.2. setting.py
4.1.2.1.3. urls.py
4.1.2.1.4. wsgi.py
4.2. App 생성
4.2.1. python manage.py startapp [projectname]
4.2.2. Database 처리
4.2.2.1. python manage.py migrate
4.2.2.1.1. Table 생성
4.2.2.1.2. 적용되지 않은 migration을 모두 적용함
4.2.2.2. python manage.py makemigrations [projectname]
4.2.2.2.1. python migration 파일 생성
4.2.2.2.2. migration을 위한 준비
4.2.2.3. python manage.py sqlmigrate [projectname] [number]
4.2.2.3.1. SQL 문법을 보여줌
4.2.2.4. python manage.py migrate [projectname]
4.2.2.4.1. migration 실행
4.2.2.5. python manage.py dbshell
4.2.3. Django에서 사용하는 파이썬 패키지
4.2.3.1. 하나의 프로젝트는 N개의 App으로 구성됨
4.3. Server 실행
4.3.1. python manage.py runserver [port]
4.3.2. http://127.0.0.1:8000/ 에 접속하면 됨
4.4. Unit Test
4.4.1. 일반 테스트
4.4.1.1. python manage.py test [projectname]
4.4.1.2. 과정
4.4.1.2.1. django.test.Testcase의 subclass를 찾음
4.4.1.2.2. test로 시작하는 메소드를 찾음
4.4.1.2.3. Test Database를 구성하므로 기존 Database와 무관하게 돌아감
4.4.2. View Test
5. Models
5.1. 의미
5.2. Schema 생성
5.2.1. 데이터 타입 클래스
5.2.1.1. CharField(max_length)
5.2.1.2. EmailField()
5.2.1.3. TextField()
5.2.1.4. DateField()
5.2.1.5. IntegerField()
5.2.1.6. BooleanField()
5.2.1.7. DateTimeField()
5.2.1.8. DecimalField()
5.2.1.9. BinaryField()
5.2.1.10. FileField()
5.2.1.11. ImageField()
5.2.1.12. UUIDField()
5.2.2. Relationship 클래스
5.2.2.1. ForeignKey()
5.2.2.2. ManyToManyField()
5.2.2.3. OneToOneField()
5.3. Model Class
5.3.1. Models.Model 타입
5.3.2. 생성, 수정, 삭제
5.3.2.1. save()
5.3.2.2. delete()
5.3.3. objects
5.3.3.1. 특성
5.3.3.1.1. django.db.models.Manager 타입
5.3.3.1.2. Model 클래스에 자동으로 추가됨
5.3.3.2. Methods
5.3.3.2.1. all()
5.3.3.2.2. get()
5.3.3.2.3. filter()
5.3.3.2.4. count()
5.3.3.2.5. order_by()
5.3.3.2.6. distinct()
5.3.3.2.7. first()
5.3.3.2.8. save()
5.3.3.2.9. delete()
5.3.4. attributes
5.3.4.1. choice_set
5.3.4.1.1. all()
5.3.4.1.2. count()
5.4. Migration
5.4.1. Model에 해당하는 데이터를 데이터베이스에 적용(생성 혹은 수정)하는 과정을 의미
5.4.2. Django에서는 데이터를 추가/갱신하고 읽어들일 수 있는 다양한 데이터베이스 API를 자동으로 제공
5.5. Admin
5.5.1. The Django admin site | Django documentation | Django
6. 주요함수
6.1. url
6.2. path
6.3. render
6.4. reverse()
6.4.1. url 이름으로부터 argument를 전달하여 url을 생성해냄
7. Django란?
7.1. 키워드
7.1.1. MTV 패턴
8. References
8.1. 예제로 배우는 파이썬 프로그래밍 - Django 소개
8.2. Wikibooks
8.3. Tutorial
9. Unittest
10. Debugging
10.1. install
10.1.1. pip install django-debug-toolbar