You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
장고걸스 워크샵에서 모든 분들을 만나뵙고 싶지만, 참석하기 어려운 분들이 있다는 것을 잘 알고 있어요. 그래서 워크샵에 참석하지 못하는 분들은 집에서 튜토리얼을 보며 자습하시길을 권장하고 있어요. 혼자서도 집에서 튜토리얼을 보며 학습하실 수 있도록 비디오 동영상을 만들고 있어요. [Coding is for girls 유투브 채널](https://www.youtube.com/channel/UC0hNd2uW8jTR5K3KBzRuG2A)에서 보실 수 있고, 앞으로 더 많은 영상들을 보여드릴 예정입니다.
50
63
51
64
## 튜토리얼 참여하기
65
+
52
66
이 튜토리얼은 [DjangoGirls](https://djangogirls.org/)에서 지속적으로 관리하고 있습니다. 오류를 발견하거나 튜토리얼 내용을 업데이트하고 싶다면 [참여 방법](https://github.com/DjangoGirls/tutorial/blob/master/README.md)을 참고하세요.
53
67
54
68
## 튜토리얼 번역 참여하기
69
+
55
70
장고걸스 튜토리얼은 crowdin.com에서 전세계 언어로 번역되고 있습니다 [https://crowdin.com/project/django-girls-tutorial](https://crowdin.com/project/django-girls-tutorial)
56
71
여러분이 사용하는 언어가 없다면, [github 이슈](https://github.com/DjangoGirls/tutorial/issues/new)에 등록하셔서 저희에게 알려주세요.
Copy file name to clipboardExpand all lines: ko/django_models/README.md
+22-18Lines changed: 22 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,14 +26,13 @@
26
26
--------
27
27
맛
28
28
29
+
기본적으로 객체지향설계 개념은 현실에 존재하는 것을 속성과 행위로 나타내는 것입니다. 여기서 속성은 `객체 속성(properties)`, 행위는 `메서드(methods)`로 구현됩니다.
29
30
30
-
기본적으로 객체지향설계 개념은 현실에 존재하는 것을 속성과 행위로 나타내는 것입니다. 여기서 속성은 `객체 속성(properties)`, 행위는 `메서드(methods)`로 구현됩니다.
31
+
그렇다면 블로그 글을 모델로 만들 수 있을까요? 우리는 블로그를 만들고 싶잖아요, 그렇죠?
31
32
32
-
그렇다면 블로그 글을 모델로 만들 수 있을까요? 우리는 블로그를 만들고 싶잖아요, 그렇죠?
33
+
우리는 다음 질문에 답할 수 있어야 해요: 블로그 글이란 무엇일까? 어떤 속성들을 가져야 할까?
33
34
34
-
우리는 다음 질문에 답할 수 있어야 해요: 블로그 글이란 무엇일까? 어떤 속성들을 가져야 할까?
35
-
36
-
블로그는 제목과 내용이 필요하죠? 그리고 누가 썼는지도 알 수 있게 작성자(author)도 추가하면 좋을 것 같아요. 마지막으로, 그 글이 작성된 날짜와 게시된 날짜도 알면 좋겠어요.
35
+
블로그는 제목과 내용이 필요하죠? 그리고 누가 썼는지도 알 수 있게 작성자(author)도 추가하면 좋을 것 같아요. 마지막으로, 그 글이 작성된 날짜와 게시된 날짜도 알면 좋겠어요.
37
36
38
37
Post(게시글)
39
38
--------
@@ -43,12 +42,11 @@
43
42
created_date(작성일)
44
43
published_date(게시일)
45
44
45
+
블로그 글로 할 수 있는 것은 어떤 것들이 있을까요? 글을 출판하는 `메서드(method)`가 있으면 좋겠죠?
46
46
47
-
블로그 글로 할 수 있는 것은 어떤 것들이 있을까요? 글을 출판하는 `메서드(method)`가 있으면 좋겠죠?
48
-
49
-
그래서 우리는 `publish`메서드도 만들어야 합니다.
47
+
그래서 우리는 `publish`메서드도 만들어야 합니다.
50
48
51
-
이제 무엇을 만들어야 하는지 이미 알았으니, 장고에서 모델을 만들어 봅시다!
49
+
이제 무엇을 만들어야 하는지 이미 알았으니, 장고에서 모델을 만들어 봅시다!
52
50
53
51
## 장고 모델
54
52
@@ -63,6 +61,7 @@
63
61
잘 정돈된 상태에서 시작하기 위해, 프로젝트 내부에 별도의 애플리케이션을 만들어볼 거에요. 처음부터 모든 것이 잘 준비되어있다면 훌륭하죠. 애플리케이션을 만들기 위해 콘솔 창(`djangogirls` 디렉토리에서 `manage.py` 파일)에서 아래 명령어를 실행하세요.
64
62
65
63
{% filename %}command-line{% endfilename %}
64
+
66
65
```
67
66
(myvenv) ~/djangogirls$ python manage.py startapp blog
68
67
```
@@ -90,6 +89,7 @@
90
89
애플리케이션을 생성한 후 장고에 사용해야 한다고 알려줘야 합니다. 이 역할을 하는 파일이 `mysite/settings.py`입니다. 이 파일 안에서 `INSTALLED_APPS`를 열어, `)`바로 위에 `'blog'`를 추가하세요. 최종 결과물은 아래와 다음과 같을 거예요. :
91
90
92
91
{% filename %}mysite/settings.py{% endfilename %}
92
+
93
93
```python
94
94
INSTALLED_APPS= [
95
95
'django.contrib.admin',
@@ -109,13 +109,15 @@ INSTALLED_APPS = [
109
109
`blog/models.py` 파일을 열어서 안에 모든 내용을 삭제한 후 아래 코드를 추가하세요.
`from` 또는 `import`로 시작하는 부분은 다른 파일에 있는 것을 추가하라는 뜻입니다. 다시 말해, 매번 다른 파일에 있는 것을 복사&붙여넣기로 해야 하는 작업을 `from`이 대신 불러와 주는 거죠.
139
141
140
142
`class Post(models.Model):`는 모델을 정의하는 코드입니다. (모델은 `객체(object)`라고 했죠?)
141
-
*`class`는 특별한 키워드로, 객체를 정의한다는 것을 알려줍니다.
142
-
*`Post`는 모델의 이름입니다. (특수문자와 공백 제외한다면) 다른 이름을 붙일 수도 있습니다. 항상 클래스 이름의 첫 글자는 대문자로 써야 합니다.
143
-
*`models`은 Post가 장고 모델임을 의미합니다. 이 코드 때문에 장고는 Post가 데이터베이스에 저장되어야 한다고 알게 됩니다.
143
+
144
+
-`class`는 특별한 키워드로, 객체를 정의한다는 것을 알려줍니다.
145
+
-`Post`는 모델의 이름입니다. (특수문자와 공백 제외한다면) 다른 이름을 붙일 수도 있습니다. 항상 클래스 이름의 첫 글자는 대문자로 써야 합니다.
146
+
-`models`은 Post가 장고 모델임을 의미합니다. 이 코드 때문에 장고는 Post가 데이터베이스에 저장되어야 한다고 알게 됩니다.
144
147
145
148
이제 속성을 정의하는 것에 대해서 이야기해 볼게요. `title`, `text`, `created_date`, `published_date`, `author`에 대해서 말할 거에요. 속성을 정의하기 위해, 필드마다 어떤 종류의 데이터 타입을 가지는지를 정해야 해요. 여기서 데이터 타입에는 텍스트, 숫자, 날짜, 사용자 같은 다른 객체 참조 등이 있습니다.
146
149
147
-
*`models.CharField` - 글자 수가 제한된 텍스트를 정의할 때 사용합니다. 글 제목같이 짧은 문자열 정보를 저장할 때 사용합니다.
148
-
*`models.TextField` - 글자 수에 제한이 없는 긴 텍스트를 위한 속성입니다. 블로그 콘텐츠를 담기 좋겠죠?
149
-
*`models.DateTimeField` - 날짜와 시간을 의미합니다.
150
-
*`models.ForeignKey` - 다른 모델에 대한 링크를 의미합니다.
150
+
-`models.CharField` - 글자 수가 제한된 텍스트를 정의할 때 사용합니다. 글 제목같이 짧은 문자열 정보를 저장할 때 사용합니다.
151
+
-`models.TextField` - 글자 수에 제한이 없는 긴 텍스트를 위한 속성입니다. 블로그 콘텐츠를 담기 좋겠죠?
152
+
-`models.DateTimeField` - 날짜와 시간을 의미합니다.
153
+
-`models.ForeignKey` - 다른 모델에 대한 링크를 의미합니다.
151
154
152
155
시간 관계상 모든 코드를 하나하나 다 설명하지는 않을 거예요. 대신 모델의 필드와 정의하는 방법에 궁금하다면 장고 공식 문서를 꼭 읽어보길 바랍니다. : https://docs.djangoproject.com/en/2.0/ref/models/fields/#field-types)
153
156
@@ -162,6 +165,7 @@ class Post(models.Model):
162
165
이 장의 마지막 단계입니다. 이제 데이터베이스에 우리의 새 모델, Post 모델을 추가할 거에요. 먼저 우리는 장고 모델에 (우리가 방금 만든!) 몇 가지 변화가 생겼다는 걸 알게 해줘야 합니다. `python manage.py makemigrations blog` 를 입력해 보세요. 아마도 화면에 이렇게 보이겠죠?
163
166
164
167
{% filename %}command-line{% endfilename %}
168
+
165
169
```
166
170
(myvenv) ~/djangogirls$ python manage.py makemigrations blog
167
171
Migrations for 'blog':
@@ -172,12 +176,12 @@ Migrations for 'blog':
172
176
장고는 데이터베이스에 지금 반영할 수 있도록 마이그레이션 파일(migration file)이라는 것을 준비해 두었답니다. 이제 `python manage.py migrate blog` 명령을 실행해, 실제 데이터베이스에 모델 추가를 반영하겠습니다. :
173
177
174
178
{% filename %}command-line{% endfilename %}
179
+
175
180
```
176
181
(myvenv) ~/djangogirls$ python manage.py migrate blog
0 commit comments