From 234b566e32c0f63e84831f7cc5f40f3bddff4232 Mon Sep 17 00:00:00 2001
From: hing9u <yeonheechae425@gmail.com>
Date: Tue, 24 Aug 2021 19:32:19 +0900
Subject: [PATCH 1/9] docs: Add 02-database-and-admin.md

---
 docs/02-database_and_admin.md | 262 ++++++++++++++++++++++++++++++++++
 mysite/db.sqlite3             |   0
 2 files changed, 262 insertions(+)
 create mode 100644 docs/02-database_and_admin.md
 delete mode 100644 mysite/db.sqlite3

diff --git a/docs/02-database_and_admin.md b/docs/02-database_and_admin.md
new file mode 100644
index 0000000..7ef710f
--- /dev/null
+++ b/docs/02-database_and_admin.md
@@ -0,0 +1,262 @@
+# 02. Database and Admin
+
+데이터 베이스 설치 및 관리자 사이트 생성
+
+## 데이터베이스 설치
+
+- django는 기본적으로 SQLite : `mysite/settings.py`
+  ```python
+  DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.sqlite3',
+        'NAME': BASE_DIR / 'db.sqlite3',
+    }
+  }
+  ```
+- 다른 데이터베이스 사용 시 [공식 문서](https://docs.djangoproject.com/ko/3.2/ref/settings/#std:setting-DATABASES) 참고
+  ```python
+  DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.postgresql',
+        'NAME': 'mydatabase',
+        'USER': 'mydatabaseuser',
+        'PASSWORD': 'mypassword',
+        'HOST': '127.0.0.1',
+        'PORT': '5432',
+    }
+  }
+  ```
+
+- `TIME_ZONE` 설정
+  ```python
+  TIME_ZONE = 'Asia/Seoul'
+  ```
+
+<br>
+
+- `INSTALLED_APPS` 확인
+  ```python
+  INSTALLED_APPS = [
+    'django.contrib.admin',         # 관리용 사이트
+    'django.contrib.auth',          # 인증 시스템
+    'django.contrib.contenttypes',  # 컨텐츠 타입을 위한 프레임워크
+    'django.contrib.sessions',      # 세션 프레임워크
+    'django.contrib.messages',      # 메세징 프레임워크
+    'django.contrib.staticfiles',   # 정적 파일을 관리하는 프레임워크
+  ]
+  ```
+  
+- 데이터베이스 설치 (`INSTALLED_APPS`에 대해서만)
+  ```bash
+  $ python manage.py migrate
+  ```
+
+<br>
+
+## 모델 만들기
+
+- **모델** : 부가적인 메타데이터를 가진 데이터베이스의 구조 (layout)
+- 우리의 `polls`앱에서는 `Question` 과 `Choice`라는 두 가지 모델을 생성할 것.
+
+<br>
+
+- `polls/models.py`
+  ```python
+  from django.db import models
+
+
+  class Question(models.Model):
+      question_text = models.CharField(max_length=200)
+      pub_date = models.DateTimeField('date Published')
+
+  class Choice(models.Model):
+      question = models.ForeignKey(Question, on_delete=models.CASCADE)
+      choice_text = models.CharField(max_length=200)
+      votes = models.IntegerField(default=0)
+  ```
+  
+- 각 데이터베이스 필드를 `Field` 클래스의 인스턴스로 표현
+- `ForeignKey()` : 왜래키 참조
+
+<br>
+
+- `INSTALLED_APPS`에 `polls.apps.PollsConfig` 추가
+```bash
+$ python manage.py makemigrations polls
+Migrations for 'polls':
+  polls\migrations\0001_initial.py
+    - Create model Question
+    - Create model Choice
+```
+
+- `polls/migrations/0001_initial.py` 파일 생성 확인
+- SQL 명령어 확인
+  - app 이름과 모델명을 이용해 테이블 이름 자동 생성됨.
+  - 필드명, 필드 타입 관례에 따라 자동 생성
+```bash
+$ python manage.py sqlmigrate polls 0001
+BEGIN;
+--
+-- Create model Question
+--
+CREATE TABLE "polls_question" (
+    "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
+    "question_text" varchar(200) NOT NULL,
+    "pub_date" datetime NOT NULL);
+--
+-- Create model Choice
+--
+CREATE TABLE "polls_choice" (
+    "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
+    "choice_text" varchar(200) NOT NULL,
+    "votes" integer NOT NULL,
+    "question_id" bigint NOT NULL REFERENCES
+    "polls_question" ("id") DEFERRABLE INITIALLY DEFERRED);
+CREATE INDEX "polls_choice_question_id_c5b4b260" ON "polls_choice" ("question_id");
+COMMIT;
+```
+
+- 데이터베이스 모델 관련 테이블 생성하기 (변경사항 데이트베이스에 적용)
+```bash
+$ python manage.py migrate
+Operations to perform:
+  Apply all migrations: admin, auth, contenttypes, polls, sessions
+Running migrations:
+  Applying polls.0001_initial... OK
+```
+
+<br>
+
+## 데이터베이스 API 사용하기
+
+```bash
+$ python manage.py shell
+Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)]
+Type 'copyright', 'credits' or 'license' for more information
+IPython 7.25.0 -- An enhanced Interactive Python. Type '?' for help.
+```
+```python
+In [1]: from polls.models import Choice, Question
+
+In [2]: Question.objects.all()
+Out[2]: <QuerySet []>
+
+In [3]: from django.utils import timezone
+
+In [4]: q = Question(question_text="What's new?", pub_date=timezone.now())
+
+In [5]: q.save()
+
+In [6]: q.id
+Out[6]: 1
+
+In [7]: q.question_text
+Out[7]: "What's new?"
+
+In [8]: q.pub_date
+Out[8]: datetime.datetime(2021, 8, 24, 8, 12, 43, 552040, tzinfo=<UTC>)
+
+In [9]: q.question_text = "What's up?"
+
+In [10]: q.save()
+
+In [11]: Question.objects.all()
+Out[11]: <QuerySet [<Question: Question object (1)>]>
+```
+
+- timezone을 `Asia/Seoul`로 설정했음에도 `UTC`로 표시됨 발견
+- `settings.py`에서 `USE_TZ = False`로 변경 → 해결됨
+
+```python
+In [8]: q.pub_date
+Out[8]: datetime.datetime(2021, 8, 24, 17, 49, 58, 504533)
+```
+
+- 객체 표현법 변경
+```python
+# polls/models.py
+
+# Question
+def __str__(self):
+    return self.question_text
+
+# Choice
+def __str__(self):
+    return self.choice_text
+```
+- 커스텀 메서드 추가
+```python
+def was_published_recently(self):
+    return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
+``` 
+
+<br>
+
+- 커스텀 메서드 확인 및 api 다루기
+- 이중 밑줄 (`__`)을 이용한 필드 조회
+
+```bash
+$ python manage.py shell
+Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)]
+Type 'copyright', 'credits' or 'license' for more information
+IPython 7.25.0 -- An enhanced Interactive Python. Type '?' for help.
+```
+```python
+In [1]: from polls.models import Choice, Question
+
+In [2]: Question.objects.all()
+Out[2]: <QuerySet [<Question: What's up?>]>
+
+In [3]: Question.objects.filter(id=1)
+Out[3]: <QuerySet [<Question: What's up?>]>
+
+In [4]: Question.objects.filter(question_text__startswith='What')
+Out[4]: <QuerySet [<Question: What's up?>]>
+
+In [5]: from django.utils import timezone
+
+In [6]: current_year = timezone.now().year
+
+In [7]: Question.objects.get(pub_date__year=current_year)
+Out[7]: <Question: What's up?>
+
+In [8]: Question.objects.get(pk=1)  # primary key
+Out[8]: <Question: What's up?>
+
+In [9]: q = Question.objects.get(pk=1)
+
+In [10]: q.was_published_recently()
+Out[10]: True
+```
+
+- choice 추가하기
+```python
+In [11]: q.choice_set.all()
+Out[11]: <QuerySet []>
+
+In [12]: q.choice_set.create(choice_text='Not much', votes=0)
+Out[12]: <Choice: Not much>
+
+In [13]: q.choice_set.create(choice_text='The sky', votes=0)
+Out[13]: <Choice: The sky>
+
+In [14]: c = q.choice_set.create(choice_text='Just hacking again', votes=0)
+
+In [15]: c.question
+Out[15]: <Question: What's up?>
+
+In [16]: q.choice_set.all()
+Out[16]: <QuerySet [<Choice: Not much>, <Choice: The sky>, <Choice: Just hacking again>]>
+
+In [17]: q.choice_set.count()
+Out[17]: 3
+
+In [18]: Choice.objects.filter(question__pub_date__year=current_year)
+Out[18]: <QuerySet [<Choice: Not much>, <Choice: The sky>, <Choice: Just hacking again>]>
+
+In [19]: c = q.choice_set.filter(choice_text__startswith='Just hacking')
+
+In [20]: c.delete()
+Out[20]: (1, {'polls.Choice': 1})
+```
+
diff --git a/mysite/db.sqlite3 b/mysite/db.sqlite3
deleted file mode 100644
index e69de29..0000000

From 8ebb6f76c89575cd9092d7cf1866d101f759b1d4 Mon Sep 17 00:00:00 2001
From: hing9u <yeonheechae425@gmail.com>
Date: Tue, 24 Aug 2021 19:33:12 +0900
Subject: [PATCH 2/9] docs: Update README.md

---
 README.md | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index 85dad61..879dbf7 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,22 @@
 # Start Django ✨
 [Django Documentation Tutorial](https://docs.djangoproject.com/ko/3.2/intro/)을 따라가며 코드 및 배운 내용을 기록합니다.
 
-
+- **기간** : 2021.08.23 ~ 2021.08.27
+- **목적** : Django 프레임 워크 기본 기능 익히기
+- **순서**
+  1. Django 공식 문서를 참고하여 실습 진행
+  2. 배운 내용 문서로 정리
+  3. 매일 아침 8:40 스크럼 회의
+  4. 피드백 반영하여 코드 및 문서 수정
 
 ## Django
 > Django makes it easier to build better Web apps more quickly and with less code.
 
 
 
-- **Development Environment**
-  - Python 3.9.6
-  - Django 3.2.6
+**Development Environment**
+- Python 3.9.6
+- Django 3.2.6
 
 
 

From bc20916e6a26902c00307064dc2807747130b84c Mon Sep 17 00:00:00 2001
From: hing9u <yeonheechae425@gmail.com>
Date: Tue, 24 Aug 2021 19:34:38 +0900
Subject: [PATCH 3/9] chore: Create gitignore

---
 .gitignore | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 112 insertions(+)
 create mode 100644 .gitignore

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..be32386
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,112 @@
+# Created by https://www.toptal.com/developers/gitignore/api/pycharm
+# Edit at https://www.toptal.com/developers/gitignore?templates=pycharm
+
+### PyCharm ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+.idea
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# AWS User-specific
+.idea/**/aws.xml
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn.  Uncomment if using
+# auto-import.
+# .idea/artifacts
+# .idea/compiler.xml
+# .idea/jarRepositories.xml
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+# *.iml
+# *.ipr
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+### PyCharm Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+# *.iml
+# modules.xml
+# .idea/misc.xml
+# *.ipr
+
+# Sonarlint plugin
+# https://plugins.jetbrains.com/plugin/7973-sonarlint
+.idea/**/sonarlint/
+
+# SonarQube Plugin
+# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
+.idea/**/sonarIssues.xml
+
+# Markdown Navigator plugin
+# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
+.idea/**/markdown-navigator.xml
+.idea/**/markdown-navigator-enh.xml
+.idea/**/markdown-navigator/
+
+# Cache file creation bug
+# See https://youtrack.jetbrains.com/issue/JBR-2257
+.idea/$CACHE_FILE$
+
+# CodeStream plugin
+# https://plugins.jetbrains.com/plugin/12206-codestream
+.idea/codestream.xml
+
+# End of https://www.toptal.com/developers/gitignore/api/pycharm
\ No newline at end of file

From 56974aa53d2cfa5f08f9a58327e8cf4af368fa9a Mon Sep 17 00:00:00 2001
From: hing9u <yeonheechae425@gmail.com>
Date: Tue, 24 Aug 2021 19:35:48 +0900
Subject: [PATCH 4/9] fix: Initialize database (bug fix)

---
 mysite/db.sqlite3 | Bin 0 -> 143360 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 mysite/db.sqlite3

diff --git a/mysite/db.sqlite3 b/mysite/db.sqlite3
new file mode 100644
index 0000000000000000000000000000000000000000..d271c6f0e0bb6a2d7b3afa9261f5dbe5896b5b68
GIT binary patch
literal 143360
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
NUQbAHdpx1g{{gaer&0g_

literal 0
HcmV?d00001


From efa17d4a84f13e4def631d00b9be425c3654c2eb Mon Sep 17 00:00:00 2001
From: hing9u <yeonheechae425@gmail.com>
Date: Tue, 24 Aug 2021 19:36:58 +0900
Subject: [PATCH 5/9] feat: Set up database and create models
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

resolved #8

- 데이터베이스 설치
- 모델 생성 및 활성화
- 모델 메서드 추가 및 api 사용
---
 .../__pycache__/__init__.cpython-39.pyc       | Bin 0 -> 146 bytes
 .../__pycache__/settings.cpython-39.pyc       | Bin 0 -> 2318 bytes
 mysite/mysite/__pycache__/urls.cpython-39.pyc | Bin 0 -> 974 bytes
 mysite/mysite/__pycache__/wsgi.cpython-39.pyc | Bin 0 -> 547 bytes
 mysite/mysite/settings.py                     |   5 +--
 mysite/mysite/urls.py                         |   4 ++-
 .../polls/__pycache__/__init__.cpython-39.pyc | Bin 145 -> 145 bytes
 mysite/polls/__pycache__/admin.cpython-39.pyc | Bin 0 -> 186 bytes
 mysite/polls/__pycache__/apps.cpython-39.pyc  | Bin 0 -> 420 bytes
 .../polls/__pycache__/models.cpython-39.pyc   | Bin 0 -> 1273 bytes
 mysite/polls/__pycache__/urls.cpython-39.pyc  | Bin 276 -> 276 bytes
 mysite/polls/__pycache__/views.cpython-39.pyc | Bin 389 -> 389 bytes
 mysite/polls/migrations/0001_initial.py       |  32 ++++++++++++++++++
 .../__pycache__/0001_initial.cpython-39.pyc   | Bin 0 -> 1012 bytes
 .../__pycache__/__init__.cpython-39.pyc       | Bin 0 -> 156 bytes
 mysite/polls/models.py                        |  23 ++++++++++++-
 16 files changed, 60 insertions(+), 4 deletions(-)
 create mode 100644 mysite/mysite/__pycache__/__init__.cpython-39.pyc
 create mode 100644 mysite/mysite/__pycache__/settings.cpython-39.pyc
 create mode 100644 mysite/mysite/__pycache__/urls.cpython-39.pyc
 create mode 100644 mysite/mysite/__pycache__/wsgi.cpython-39.pyc
 create mode 100644 mysite/polls/__pycache__/admin.cpython-39.pyc
 create mode 100644 mysite/polls/__pycache__/apps.cpython-39.pyc
 create mode 100644 mysite/polls/__pycache__/models.cpython-39.pyc
 create mode 100644 mysite/polls/migrations/0001_initial.py
 create mode 100644 mysite/polls/migrations/__pycache__/0001_initial.cpython-39.pyc
 create mode 100644 mysite/polls/migrations/__pycache__/__init__.cpython-39.pyc

diff --git a/mysite/mysite/__pycache__/__init__.cpython-39.pyc b/mysite/mysite/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..16ffc234e487b9c064368c21d822ffb4d68839d0
GIT binary patch
literal 146
zcmYe~<>g`kf;mmfi6Hthh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6w<*(xTqIJKx4
zOva>SCFZ5)>z0(3<QHWo=EUSy7H5{E!l?N8%)HE!_;|g7%3B;Zx%nxjIjMFa13v>X
F0|2EqBH{o5

literal 0
HcmV?d00001

diff --git a/mysite/mysite/__pycache__/settings.cpython-39.pyc b/mysite/mysite/__pycache__/settings.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..e27fdc21fbc48834f6abe3d4fd08f367bdf3330e
GIT binary patch
literal 2318
zcmb7FTXWk)6qX(NQZ;VVq-{zIgO~}lrbMQMq@@GJiY=$6zD*=Ipy{Adv}<Qw-Kt$R
zwO;ufeE{Czk)NYip7;YiFbw5LwiA!j8G>c)?VR(Sv)`VxGD{_agWsdyHq0j_j{7~C
z%>VK*slrQtg$8jthcYN@XPm5_&2Tu2mww3n$p6HRa-*D{M@xDE@p^H{=@*6^%Ke<t
z1?cn8Uql6c8G!`xD3J+2XGjKJe9aFtdI>G-mrw~^!g+N07Kc_|XGuoCjIN+n(7A%v
z()McFUL%<yudkr%`W3XUuY$KVc(0-x`Ze^9ejVM^*U>GNE5B>r&2XGhADQmZ6Dekl
zxI-!qyg+oulrSv%fj7bylLTQ8yErfzM&jXEyp2+mO%pl96)7_VHr2c>h7>@=Ddv{+
znY07ejRevQut;1$cT7e+SA;)1BH)kM_!DrCg(Jp%`mj<#o<*gJk68qk=Txv;0l*6L
zd}7hcEZ)ilo*iLv5ZbnA6UszyaJnDUMc@dNKzwQ1A*TPwSAYj|j{bo2<;t0u@0si<
z+MTjMT#BtQz?;?4HnFVg#{DmzZ-4&*di7$P?vM@Rqw&_LTrGb%V(h`r(Y=jVcebk=
z4z1q#YOIwD(RJUmZ7P|*Po-Wmta<K$45O<Pc**iy7LY?JB|BPMTn!<TTMLVc33eG9
z`<O=S3qp!11^Ukl91xg8u(-Ks!QjBG<d`VLyE&CQ1R)zAn*o;6{S!8p)Px8av`=Kw
z=Zj!d_tKobI$4{uDxY-%8Q^%XR7<=6P^G~@szLLV;Nv;f`wOv{K;C>DGR%QDVx<W>
zXSleD8CCPf?FoHzRy%LmgiWmHBhz{gMIwFM2uufe{iGV`oZZDq^+{o1)2K29Vc79)
zC_w2Dtg(w`1tQhcTGXaus;{P}|B4w<Iu^v_1+>gZcNSsJYDowmhQsLNb7%(m1r!pC
z?oM@2ax@|IEyxMc(bj_U35jnpn90g~T-cRsPn1qw=j+XVH7?4%o{^3U-JaI$cGPHn
z%GWU+lBAA+<MaUI0>T3`wAo2Uqr+4B=nEUJxUEQl#p$@5jq^%puh~&zz9YAlpa}II
zJzj`A%^KgN^w<lK0e1>PsXM7paUip#SVM+Y;t<<Ris9)*!waHE=S6B0mpGx*!tRhA
zo!WnWUi(Rr^rkVM0#wfn&<PzJ5bG>L4!fHnjRctzv!Y@zv>Q>e0-pe=no9KE6dx#c
zJcQv|+a*J&Dz8DXjXLEUaltU)b~lW;;KLnilfxhj9LGh&NbZ+pJ;2nnU*b6L!`0$4
zy|^o@N^;_{penU}MKhi#-^IDQvfJN_OLD8#Jy7b#<F2Zy@ug-*)nEx0AWhU*XgBNi
zmU1BPEAjGvx2qZb{Z_5pX~Y*arQK`Enxe)l2kKrk(Qh?ta*|Q;g}SWCiCZ<kA@{Y%
zMo(7NgYJIacq+G=AnZaSmRfRWuP^T@My*>{0I=Cs4804vQ|v>)&3g|zlTqv5r=2*T
ztZ6#zK?5JPB#wBst~BI+OEbVn*Jw1AR{a+)cpvyko4@YY9zIKQil*(e3AdXJ=nRNy
zKbvIztebrfC4U?jzXbL}8$W{2J4e5PhF@M@S}E{Le3s7@g`&Xo*$h0{;+yQ>{2P9S
aFC_E)KQJ!wZ?gQ{`zOB!R+A^s=l%tp-5SmS

literal 0
HcmV?d00001

diff --git a/mysite/mysite/__pycache__/urls.cpython-39.pyc b/mysite/mysite/__pycache__/urls.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..01524863544a9175bfe61aa8f25b88b42eaaeda9
GIT binary patch
literal 974
zcma)5%Zl4D6qOz4QBS7r7ZgDkjv-^ynO$g0OX$#n(nZ_Zn1DyIltjUjj3l>Bw%PV8
zy6Z1_+f{#|P^hFhU<!p1SPye`?m6e`qVw|*nDONMQ}nF|z)ySVj=&sVnNQgXgA8B~
z`=!VH%=hfRSN2$t1+1U-JwO5+kUs7oyn}D{1LAK7+u^}q``HK&KZ1CKgbx7QDXIy)
z{qPRX1z*v1Es>^zhvBCUfp@hmE2K4%T;0KvDh;KmHBt70f?B}OlzdSMycQBNAqk{>
zB_wkYuqp{s1S&#iAv9y7b){x$ibbIkyhVI1Dk-+4&`BX!N_cveT&7x7v{0!HPEC51
zhHt(iX0X&Oysmj+*&Wk5&}RvJjWI+VQdSA6XArKWV36%{R8{TIPW)vX?<5-m9fjtq
z5xbd0(X`dI5sXYBM~u9P>^_Rad5M&|SQ=rtgZe)fLT`w)L=tDziOySt<=Eeojg3!`
z$}Pww{)f>GFUlHIzBVSfd{$avih1(q#u)<*6;mD?OC~W~wN}oKb{)%+Si?^w+t{fy
z<=$+UrC6uNz*DBk{&2Wa9EZQm%LTF5^buy1$9@x7$D3gry&qJfG$r4MZgto80~edV
zj~_I{JU5Rg&$EXuUn5gXx|HT6gXXLwLYf8w(soP}*caXeR$6n`DfbT`ZNItc_tkv1
xxK%_dH!qGz7rNF$QdBOEZE{*HR8sAl(Q_tnU6Plc!BG}0cr^AN2V-yi=P$paE|35K

literal 0
HcmV?d00001

diff --git a/mysite/mysite/__pycache__/wsgi.cpython-39.pyc b/mysite/mysite/__pycache__/wsgi.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..c84bdf4436e89b7b02f46f068dec103eb2e9aea4
GIT binary patch
literal 547
zcmYjPO>Yx15cN7~6BY^_5NAuABGFw$ZxuoyTB0CG4{3!IMcSD4WaG%|S*@Lv^a#I!
z8wWV@hdB7kiNC;!*{mvMB)`%4<Gtsx<<U{hD87GrBELn9{b`E*=u+{DhI>Y!*p#VA
zaT84=${oYY&a@LTh*sSn2db+MesZchU)l6f@d+Co-u#X~PKG0qqh07iEU*^k)@cu-
zs&NImPvUsw1$?g1ffIfSqTMfzk)I3*>4X#|s<nY*0~;`6BWt}|va$pv=5tw9M(5IN
zwDURfy=_FW2B9tKmAeIjmdLde3vJ-3Z~*br`^ufBslwbPY9(!fx1Mq=Q?Tht@;qJQ
zwZ~LJWpG=9_35=MbQ=GqZm{tn3Xcl#Su>aI*$9u%-n||VFS5z`<>hERoMay^&aU2{
z-#ln9pE&Sd+rkZcp_gUkAj<+r7aq1glAP=(4QtIwC-lH>bd5H|bWp)Uu8j|O_XK~j
zx_QPO{5yGbI=gaEyB*G2%45IwNR2bI*1~OSM3QP7`Y+lhzobvVT%VwOr_b;4`}{xl
Cd8=0d

literal 0
HcmV?d00001

diff --git a/mysite/mysite/settings.py b/mysite/mysite/settings.py
index 6ebe44d..53ea25f 100644
--- a/mysite/mysite/settings.py
+++ b/mysite/mysite/settings.py
@@ -31,6 +31,7 @@
 # Application definition
 
 INSTALLED_APPS = [
+    'polls.apps.PollsConfig',
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
@@ -105,13 +106,13 @@
 
 LANGUAGE_CODE = 'en-us'
 
-TIME_ZONE = 'UTC'
+TIME_ZONE = 'Asia/Seoul'
 
 USE_I18N = True
 
 USE_L10N = True
 
-USE_TZ = True
+USE_TZ = False
 
 
 # Static files (CSS, JavaScript, Images)
diff --git a/mysite/mysite/urls.py b/mysite/mysite/urls.py
index 4552108..0698963 100644
--- a/mysite/mysite/urls.py
+++ b/mysite/mysite/urls.py
@@ -14,8 +14,10 @@
     2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
 """
 from django.contrib import admin
-from django.urls import path
+from django.urls import path, include
 
 urlpatterns = [
+    # route : url 패턴
+    path('polls/', include('polls.urls')),  # 다른 url 패턴을 포함할 때 include 함수 사용
     path('admin/', admin.site.urls),
 ]
diff --git a/mysite/polls/__pycache__/__init__.cpython-39.pyc b/mysite/polls/__pycache__/__init__.cpython-39.pyc
index f7a876690f8b0c120986e2096ecd59eb9c740f76..e892ef2fc7e8ac78d8b34c23303fd1ecbbd324ed 100644
GIT binary patch
delta 18
YcmbQpIFXSnk(ZZ?0SLBin#k1-03#LzJOBUy

delta 18
YcmbQpIFXSnk(ZZ?0SLktOyp_@03i4S%m4rY

diff --git a/mysite/polls/__pycache__/admin.cpython-39.pyc b/mysite/polls/__pycache__/admin.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..9dedba1a2f6361cb7223a41d9119d5c71f071c22
GIT binary patch
literal 186
zcmYe~<>g`kf-Rer6P<wcV-N=!FabFZKwK;UBvKes7;_kM8KW2(8B&;n88n$+0!0}#
z8E>&BrsQVk`Drpm@ug%X=B4NBCFkdr6lEqAfecv5P{a(Rz{D?OXRDad;?$yIFc||;
yu3J)Cl3$dWm=lv*S)5st8dH#;lT#c6HdU{n@)n0pZhlH>PO2Rv(45ae%m4suE-nQC

literal 0
HcmV?d00001

diff --git a/mysite/polls/__pycache__/apps.cpython-39.pyc b/mysite/polls/__pycache__/apps.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..e252dd3ecbb8c4bed3c6aeff73870e686ac24ed7
GIT binary patch
literal 420
zcmYjOJ4?hs5Z=uukb5;^D+pF8OkpV^cOGbW2x1cg%j#@GWb-ha6lbeH!9QUu{+eyA
z{0mmjBnRHWd^?YC9=od+iz!3-`aDtZcz%<!FFra;RC|m747gz>PdH~c3_K8T420&d
zBJse#V^Q#fEEaJ$SvAeNuCgM3q{zN-be5?05J9tq1H)>b2=Edg1a|S=?6x+>jtyRp
z;7L_^9m7Lh)}W1zuZn!tclC9l4J1KB+)Wg?P|8Y`T1q#S5~;l*doJa3ugorU06J5>
z>7>F2GNTU8r`!i?C%Di6zh~?7^xo>$4w#M$oOW2!7RsdM))t*khry|88XGs;R$w)~
omL&+e&xgn+5^lD;05MySh7k9E+-T81xbR}!`;uPC5_c~C04;!LxBvhE

literal 0
HcmV?d00001

diff --git a/mysite/polls/__pycache__/models.cpython-39.pyc b/mysite/polls/__pycache__/models.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..6a767374867ea8fbb89750be175dbe19bb9fa4b4
GIT binary patch
literal 1273
zcmZuxO>fgc5Z$%oc%6@`6j2IDz=2B+?E!H@6>61IK!^xbxLA=^Zg!hEZ0vS-O`D1v
zT>AsKwa4E15u7>t%Bg>W6En6`1vM+}WOjBu^E~f4QM=tBuzvr168&%p`Gbe~RfEG8
zZ1Wn7Ac86q;;*CV#0edWzN_3xEv!-Uiin!<z7yd|XY74*!#YIj!iR`oMSMZ`NQYfP
zHPY+Qygo^VR0cd|<B2>?6FI=U`Q^f43$}R*Mv{;U5<1cy*8~;L84W$@p4WwYK|{an
zAF{G*7zhU4f}DNGq_J_DT>XL)mo#roq7$xUGPI-9B@tQq_<gpoVl$FrKp|ze(8t|{
zZR%jYk}=tX3W&XZR8{3xo>-__Gg2K~65WEtzt6hQ`=5-|rm%f6j*?-zZZn(eI8yz|
z)WlZy4^yQ~zZ}BG;WYO-H&%1r#D+i!v_D;*q2H)3Z$R`QuYh<T9E51;xpP76^^DfY
zXAdUf_O9@40DDbDQ`7Nsc9`vR9Dv3t=Wdc7=M2xtMjoIAer%*sCdG@Drj6OF$C2Ss
zpd1|6av&3{rb}=)!~W<R`{LYQr;#(xlV~D2&l{Y>C^Ch9i}Rx_Qss@tQRG2)6zSbq
zDxm{Bw|4;OM}SzyZb3|AbA1O5vM^^5u|_%junhylXp1%+<`&Tb1pZss%HM?Wyy_(A
zZCn@h%n5z)m~ey(Dh$AHp#H#bR{CpI`m1+GX*`fH_aIF;3{=9vku;5((iJDZkOxtw
z><xMsC{W`IK)vRms9Y#;5l6*5?n3U2kfjpJOiH~@TdyJp%+YITicvRqQ!V3R@>WiZ
z@#KDYd#}5_^D<;J)$4nh{SZvvdXrc=lqEO0_a(K`luRrl;Q>6d0=pt%8E9xZ8lxSi
zZ)3fn{8~1|eu<`4oiiINQ!3SahkqOew&Kw_ri-41K-p#~rx!TEvYi9X+?D1(3sM~B

literal 0
HcmV?d00001

diff --git a/mysite/polls/__pycache__/urls.cpython-39.pyc b/mysite/polls/__pycache__/urls.cpython-39.pyc
index 225b68146f4b9faf5d4e0dd836bc03e7c7a6c1f0..513f7eee352fb4ad88363f5106ddb88244df8db6 100644
GIT binary patch
delta 19
ZcmbQjG=+&Pk(ZZ?0SLBi+Q`Ml2mmK%1Lyz%

delta 19
ZcmbQjG=+&Pk(ZZ?0SJm0Zsg)(1OO$B1C{^)

diff --git a/mysite/polls/__pycache__/views.cpython-39.pyc b/mysite/polls/__pycache__/views.cpython-39.pyc
index 87e4b424faa301bbb0014087a0bfbd2a1e0ef22d..0e63f11d72971525179e7af12a27b2301b7ae35f 100644
GIT binary patch
delta 19
ZcmZo=Ze`|5<mKgJ0D>)>HgZ)n0stmY1U&!%

delta 19
ZcmZo=Ze`|5<mKgJ0D>6{HgZ)n0stjV1P=fJ

diff --git a/mysite/polls/migrations/0001_initial.py b/mysite/polls/migrations/0001_initial.py
new file mode 100644
index 0000000..18ab3b2
--- /dev/null
+++ b/mysite/polls/migrations/0001_initial.py
@@ -0,0 +1,32 @@
+# Generated by Django 3.2.6 on 2021-08-24 17:48
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Question',
+            fields=[
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('question_text', models.CharField(max_length=200)),
+                ('pub_date', models.DateTimeField(verbose_name='date Published')),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Choice',
+            fields=[
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('choice_text', models.CharField(max_length=200)),
+                ('votes', models.IntegerField(default=0)),
+                ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='polls.question')),
+            ],
+        ),
+    ]
diff --git a/mysite/polls/migrations/__pycache__/0001_initial.cpython-39.pyc b/mysite/polls/migrations/__pycache__/0001_initial.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a9c4a000057f1c01f9b728989bbe7d1a943ee268
GIT binary patch
literal 1012
zcmZuw&2G~`5caM&iIX_#59RO1fs2ud$`v8hlD4Qqtw1eESdlCzGj-PZC$*ib=@qVd
z54iFaJi}f&^$Cy=AZG2PEfQ<(c)wlEH#6Vt`khY8pz-eOL;t-njPDxU9JFU_(ad{f
zzyKB*F>_hWUCuP-k?D$;2ACi|86c2_wU4G-1Ab&UwM+6b9Ijfi3^KovX_BjYoB~Gq
z;Ygp|9Bl$yH1p47&~O<TE(hkCf#C|Qg>~RyVk5MG(I=n=^|?6V(4f60SkRm^LM=iq
zXoIa$U_xikOW*E)eOLbRT_x0pHCQj1ZV|Gv6L!N!xDu|y2Hc)=;uM-Q;O-jSp&IY1
z=E1VKV`aUWVy^2{T*98>`#X+Mwm&UWZ<L{5AgJ~vld+%8ybm~2%^Wl7NAd!deTLaE
z&CyHz7**$VLF5&9UR-`7NgPHx`sZGRNl=WHHJJ`QAj*rbwhvxUhmp+32oB4%lq9<-
zsp=;ZBOu}X<5Z4NwMXT@Bv!Svw7@)L6@LTp#GgimvX<d5x|1}D^4<~?Ycowe>L3=V
zc#$4D>&o)Vq&-iyJdfHtjgZ#1=bcXdNasMPAro0psmcbNU;>zoBn9RaShf45HV67*
zWTxJ+U&vsaRNK?3t7d=fXVtQ^L$w~u7%OP+Cj|z$IBe~u8Ok7eMatG8^phY}9EQp&
z)74#R^tX@t+dI3el}>PRBfl7#LorM9bGQF=@RpjAmv&H*JT52|-KRl3%VmLsQj@{;
zr5<c<Za(oA74{~xOuw22&HN!5iwiD<V4QETF6;j0e}r{~*u7tbf0Q0hT{WwSJs6hK
oRBGJ6+U!-2r?)I9)BL6Hbq&?(5gjP&S=Ei_TGU)8waP5>FIgcb*Z=?k

literal 0
HcmV?d00001

diff --git a/mysite/polls/migrations/__pycache__/__init__.cpython-39.pyc b/mysite/polls/migrations/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..8eb54ec8f4aec231fbbc91ead7e3f0888e87426e
GIT binary patch
literal 156
zcmYe~<>g`kf-Rer6G8N25P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HcvsFxJacWU9
zn2bruO3X{o*DWb6$uG)G%!$dZEY2)RjVZ{_$tjM>%}g&!EXmBzD~^ee&&<m#iI3MS
WsJz8tlbfGXnv-e=GWs(RGXMZ*3nyFv

literal 0
HcmV?d00001

diff --git a/mysite/polls/models.py b/mysite/polls/models.py
index 71a8362..30ea737 100644
--- a/mysite/polls/models.py
+++ b/mysite/polls/models.py
@@ -1,3 +1,24 @@
+import datetime
+
 from django.db import models
+from django.utils import timezone
+
+
+class Question(models.Model):
+    question_text = models.CharField(max_length=200)
+    pub_date = models.DateTimeField('date Published')
+
+    def __str__(self):
+        return self.question_text
+
+    def was_published_recently(self):
+        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
+
+
+class Choice(models.Model):
+    question = models.ForeignKey(Question, on_delete=models.CASCADE)
+    choice_text = models.CharField(max_length=200)
+    votes = models.IntegerField(default=0)
 
-# Create your models here.
+    def __str__(self):
+        return self.choice_text

From d17c331f9cb0b4ca0799bb77a3068b38d6c86826 Mon Sep 17 00:00:00 2001
From: hing9u <yeonheechae425@gmail.com>
Date: Tue, 24 Aug 2021 20:29:44 +0900
Subject: [PATCH 6/9] docs: Update 02-database_and_admin

---
 docs/02-database_and_admin.md | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/docs/02-database_and_admin.md b/docs/02-database_and_admin.md
index 7ef710f..24e06b9 100644
--- a/docs/02-database_and_admin.md
+++ b/docs/02-database_and_admin.md
@@ -76,7 +76,7 @@
   ```
   
 - 각 데이터베이스 필드를 `Field` 클래스의 인스턴스로 표현
-- `ForeignKey()` : 왜래키 참조
+- `ForeignKey()` : 외래키 참조
 
 <br>
 
@@ -116,7 +116,7 @@ CREATE INDEX "polls_choice_question_id_c5b4b260" ON "polls_choice" ("question_id
 COMMIT;
 ```
 
-- 데이터베이스 모델 관련 테이블 생성하기 (변경사항 데이트베이스에 적용)
+- 데이터베이스 모델 관련 테이블 생성하기 (변경사항 데이터베이스에 적용)
 ```bash
 $ python manage.py migrate
 Operations to perform:
@@ -260,3 +260,29 @@ In [20]: c.delete()
 Out[20]: (1, {'polls.Choice': 1})
 ```
 
+## 관리자 생성하기
+```bash
+$ python manage.py createsuperuser
+Username (leave blank to use 'user'): admin
+Email address: chaeyeonhee@kakao.com
+Password:
+Password (again):
+Superuser created successfully.
+```
+
+<br>
+
+- 개발 서버 : http://127.0.0.1:8000/admin/
+```bash
+- $ python manage.py runserver
+Watching for file changes with StatReloader
+Performing system checks...
+
+System check identified no issues (0 silenced).
+August 24, 2021 - 19:56:57
+Django version 3.2.6, using settings 'mysite.settings'
+Starting development server at http://127.0.0.1:8000/
+Quit the server with CTRL-BREAK.
+[24/Aug/2021 19:57:21] "GET /admin/ HTTP/1.1" 302 0
+...
+```

From 242716530a4a33c2c0ff964d3e54e54600e7cc38 Mon Sep 17 00:00:00 2001
From: hing9u <yeonheechae425@gmail.com>
Date: Tue, 24 Aug 2021 20:29:55 +0900
Subject: [PATCH 7/9] feat: Create admin and register polls app
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

resolved #9

- 관리자 생성
- polls app 관리자 사이트에 등록
---
 mysite/db.sqlite3                             | Bin 143360 -> 143360 bytes
 mysite/polls/__pycache__/admin.cpython-39.pyc | Bin 186 -> 260 bytes
 mysite/polls/admin.py                         |   3 ++-
 3 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/mysite/db.sqlite3 b/mysite/db.sqlite3
index d271c6f0e0bb6a2d7b3afa9261f5dbe5896b5b68..0ab4cacf02b0ca442d024ed2ebd3d7dbfb8c4ba5 100644
GIT binary patch
delta 897
zcmaiyO-~a+7{_O6(Jo0DIdK4!7D+IYmg(-ayKRE9eQ%}o9cT$DrQN>l_GRgIyKM;p
z^b1J*0EU=&R}%dg5>J{yLb!U+n+G^JfrBQ*IGMwfdFFZMKmXrzaA7*QFuj_hY)8{R
z%JzQi=>kQ+ezV}F=#y^?^XMK0qX0%vtd=FXf5=j1aJVSYlV*;l1+%g(mn%#`trZ!k
zYnE{#vSw@1Y)eqX;ZDlS3Tj#}ulR<I)@&H@jOt1ylPS46NcU84V-<DWU1zqP=}9>$
zt~7)5?aaKc`D2R=VjMQa+Zb$NkcZ(stkcdj4j+U0V!2swm1;$CAhugIQCyOXa<OeM
zwVQW}7{-nfc01f-000X90%YGmnb`Uc$4rJv`lgfl6ZMlaJ{TQ81LJ4plV8U7Us$Qp
z*vq7VSXtMbXvfXB2F;$v50#QW9JJLPspRS-T(XPN{;K3x<GLgyy<(vrYRF7HriEn5
z*-{gE3G3d0;;$=#uozDJn$=1sF<h^2r!^&wyHX~cEwMo{oWN{el4Y?SatAoaN@Ks7
zcS+9^+x|+B>tyn|@-phhIgLf3+G+<oG^OwLu6Jv`AVyi83k=rdm7z0|&-638FV^u!
z*mPu&in*dV>2r0|KyC$BLUD|d;Bhn~*<#s~<Dy|M*6(GsMwDl(?xE!33YcKDm6y|v
z91~0_YDC!awNfjATTk6K#Qg<=C6pbvo}K}C2F8e|r*QU>Ax8htvkwPG%Uk2=DVeG(
z0Ix{l4>$pU(Lm9r+m6=&Uf&!~5@-ekO`C7v9Rqj_rb#$Ol1H$xNzp)n)+$9)cep#T
z9dSI1dB<9<*qu`?n(}O8cZLj2t16afJeJ*=N?mM}RT6H@_={c9lF+srb+tyan|phk
zrjd`Ql+i*&UIKVY9{dU)KQsvRzumYMc@E$?x&0Z=J+TUFR>}yh>>mktbu#ZBj97jH
D>t6m0

delta 169
zcmZp8z|ru4V}dlJ#zYxsMvaXLcKVDQljrMOGIDIbsjqFYndJey03-Wm!G`zz69ZTm
z9T3=bfJK0VL4W}SxKPC(09F5ypLBqmRR$<24VIkzzn^tE%LPV-%`6R!0<8Sk82GPk
z7A!c!ucg7r!l39Fo{?ChUaU}BU~gn#WT<Okp=)HKU}$b-VrgY+p=WAfVrp!>On^xN
E0N4>Sg8%>k

diff --git a/mysite/polls/__pycache__/admin.cpython-39.pyc b/mysite/polls/__pycache__/admin.cpython-39.pyc
index 9dedba1a2f6361cb7223a41d9119d5c71f071c22..7122fd378cc5589c9da6f945d744d6fb426e5cc6 100644
GIT binary patch
delta 187
zcmdnR*uqqw$ji&c00jEiRTATY^kWbQ888Dm4nSP20VGlwQW$d>av7r-85vTTQkZj?
za+#x;85vR;vsf0erZO)CiL(SVXtKTps%Fq+yv3TBlAD?Lk`cn=2rNx4F3HT#^V4LD
z;!DX&oERpcc8e`HKP5G%xQGR)=oU+HW=ZNTj-u4`%;J*NqLmCq96;eBj*0nhoW&p&
IJd8X{0HGZy5&!@I

delta 141
zcmZo++QnF($ji&c00dh$DJMDs>Bk@rGGGF79Dul307#@Tq%h_%<T6GvGBTtv1v6+e
zzXXahXfobnO-#wn%=6P^isDPjO3X{o*GtaND=ErMDgqg>lA(whNP&r8#?DqTp~b01
O#Xxf6Q8U)hAR_?K;~g^q

diff --git a/mysite/polls/admin.py b/mysite/polls/admin.py
index 8c38f3f..aa3fdc6 100644
--- a/mysite/polls/admin.py
+++ b/mysite/polls/admin.py
@@ -1,3 +1,4 @@
 from django.contrib import admin
+from .models import Question
 
-# Register your models here.
+admin.site.register(Question)
\ No newline at end of file

From 7e54ad6f722e8c09c22fe62d462115cd845d8b90 Mon Sep 17 00:00:00 2001
From: hing9u <yeonheechae425@gmail.com>
Date: Tue, 24 Aug 2021 20:29:44 +0900
Subject: [PATCH 8/9] docs: Update 02-database_and_admin

---
 docs/02-database_and_admin.md | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/docs/02-database_and_admin.md b/docs/02-database_and_admin.md
index 7ef710f..24e06b9 100644
--- a/docs/02-database_and_admin.md
+++ b/docs/02-database_and_admin.md
@@ -76,7 +76,7 @@
   ```
   
 - 각 데이터베이스 필드를 `Field` 클래스의 인스턴스로 표현
-- `ForeignKey()` : 왜래키 참조
+- `ForeignKey()` : 외래키 참조
 
 <br>
 
@@ -116,7 +116,7 @@ CREATE INDEX "polls_choice_question_id_c5b4b260" ON "polls_choice" ("question_id
 COMMIT;
 ```
 
-- 데이터베이스 모델 관련 테이블 생성하기 (변경사항 데이트베이스에 적용)
+- 데이터베이스 모델 관련 테이블 생성하기 (변경사항 데이터베이스에 적용)
 ```bash
 $ python manage.py migrate
 Operations to perform:
@@ -260,3 +260,29 @@ In [20]: c.delete()
 Out[20]: (1, {'polls.Choice': 1})
 ```
 
+## 관리자 생성하기
+```bash
+$ python manage.py createsuperuser
+Username (leave blank to use 'user'): admin
+Email address: chaeyeonhee@kakao.com
+Password:
+Password (again):
+Superuser created successfully.
+```
+
+<br>
+
+- 개발 서버 : http://127.0.0.1:8000/admin/
+```bash
+- $ python manage.py runserver
+Watching for file changes with StatReloader
+Performing system checks...
+
+System check identified no issues (0 silenced).
+August 24, 2021 - 19:56:57
+Django version 3.2.6, using settings 'mysite.settings'
+Starting development server at http://127.0.0.1:8000/
+Quit the server with CTRL-BREAK.
+[24/Aug/2021 19:57:21] "GET /admin/ HTTP/1.1" 302 0
+...
+```

From 4e28f3055b982bca06362968a30d3f650babaedd Mon Sep 17 00:00:00 2001
From: hing9u <yeonheechae425@gmail.com>
Date: Tue, 24 Aug 2021 20:29:55 +0900
Subject: [PATCH 9/9] feat: Create admin and register polls app
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

resolved #9

- 관리자 생성
- polls app 관리자 사이트에 등록
---
 mysite/db.sqlite3                             | Bin 143360 -> 143360 bytes
 mysite/polls/__pycache__/admin.cpython-39.pyc | Bin 186 -> 260 bytes
 mysite/polls/admin.py                         |   3 ++-
 3 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/mysite/db.sqlite3 b/mysite/db.sqlite3
index d271c6f0e0bb6a2d7b3afa9261f5dbe5896b5b68..0ab4cacf02b0ca442d024ed2ebd3d7dbfb8c4ba5 100644
GIT binary patch
delta 897
zcmaiyO-~a+7{_O6(Jo0DIdK4!7D+IYmg(-ayKRE9eQ%}o9cT$DrQN>l_GRgIyKM;p
z^b1J*0EU=&R}%dg5>J{yLb!U+n+G^JfrBQ*IGMwfdFFZMKmXrzaA7*QFuj_hY)8{R
z%JzQi=>kQ+ezV}F=#y^?^XMK0qX0%vtd=FXf5=j1aJVSYlV*;l1+%g(mn%#`trZ!k
zYnE{#vSw@1Y)eqX;ZDlS3Tj#}ulR<I)@&H@jOt1ylPS46NcU84V-<DWU1zqP=}9>$
zt~7)5?aaKc`D2R=VjMQa+Zb$NkcZ(stkcdj4j+U0V!2swm1;$CAhugIQCyOXa<OeM
zwVQW}7{-nfc01f-000X90%YGmnb`Uc$4rJv`lgfl6ZMlaJ{TQ81LJ4plV8U7Us$Qp
z*vq7VSXtMbXvfXB2F;$v50#QW9JJLPspRS-T(XPN{;K3x<GLgyy<(vrYRF7HriEn5
z*-{gE3G3d0;;$=#uozDJn$=1sF<h^2r!^&wyHX~cEwMo{oWN{el4Y?SatAoaN@Ks7
zcS+9^+x|+B>tyn|@-phhIgLf3+G+<oG^OwLu6Jv`AVyi83k=rdm7z0|&-638FV^u!
z*mPu&in*dV>2r0|KyC$BLUD|d;Bhn~*<#s~<Dy|M*6(GsMwDl(?xE!33YcKDm6y|v
z91~0_YDC!awNfjATTk6K#Qg<=C6pbvo}K}C2F8e|r*QU>Ax8htvkwPG%Uk2=DVeG(
z0Ix{l4>$pU(Lm9r+m6=&Uf&!~5@-ekO`C7v9Rqj_rb#$Ol1H$xNzp)n)+$9)cep#T
z9dSI1dB<9<*qu`?n(}O8cZLj2t16afJeJ*=N?mM}RT6H@_={c9lF+srb+tyan|phk
zrjd`Ql+i*&UIKVY9{dU)KQsvRzumYMc@E$?x&0Z=J+TUFR>}yh>>mktbu#ZBj97jH
D>t6m0

delta 169
zcmZp8z|ru4V}dlJ#zYxsMvaXLcKVDQljrMOGIDIbsjqFYndJey03-Wm!G`zz69ZTm
z9T3=bfJK0VL4W}SxKPC(09F5ypLBqmRR$<24VIkzzn^tE%LPV-%`6R!0<8Sk82GPk
z7A!c!ucg7r!l39Fo{?ChUaU}BU~gn#WT<Okp=)HKU}$b-VrgY+p=WAfVrp!>On^xN
E0N4>Sg8%>k

diff --git a/mysite/polls/__pycache__/admin.cpython-39.pyc b/mysite/polls/__pycache__/admin.cpython-39.pyc
index 9dedba1a2f6361cb7223a41d9119d5c71f071c22..7122fd378cc5589c9da6f945d744d6fb426e5cc6 100644
GIT binary patch
delta 187
zcmdnR*uqqw$ji&c00jEiRTATY^kWbQ888Dm4nSP20VGlwQW$d>av7r-85vTTQkZj?
za+#x;85vR;vsf0erZO)CiL(SVXtKTps%Fq+yv3TBlAD?Lk`cn=2rNx4F3HT#^V4LD
z;!DX&oERpcc8e`HKP5G%xQGR)=oU+HW=ZNTj-u4`%;J*NqLmCq96;eBj*0nhoW&p&
IJd8X{0HGZy5&!@I

delta 141
zcmZo++QnF($ji&c00dh$DJMDs>Bk@rGGGF79Dul307#@Tq%h_%<T6GvGBTtv1v6+e
zzXXahXfobnO-#wn%=6P^isDPjO3X{o*GtaND=ErMDgqg>lA(whNP&r8#?DqTp~b01
O#Xxf6Q8U)hAR_?K;~g^q

diff --git a/mysite/polls/admin.py b/mysite/polls/admin.py
index 8c38f3f..aa3fdc6 100644
--- a/mysite/polls/admin.py
+++ b/mysite/polls/admin.py
@@ -1,3 +1,4 @@
 from django.contrib import admin
+from .models import Question
 
-# Register your models here.
+admin.site.register(Question)
\ No newline at end of file