일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- virtualenv
- PostgreSQL
- restful
- ted
- 위즈네트
- berkeley db
- 온오프믹스
- 스포츠코치
- UserCreatioForm
- psycopg2
- 샤오미
- 데이터 이전
- 탱크램팩토리
- LED
- 스마트 러닝화
- windows
- uWSGI
- AWS EC2
- 아이디어팩토리
- help_text
- 미니 화이트
- Python
- 워크샵
- 미밴드 1S
- virtualenvwrapper
- IOT
- django
- 무브나우
- 마이크로소프트
- nginx
- Today
- Total
NERD WORLD
(번외) Django와, Python class/instance 변수에 대한 의문 본문
Django에서 Model과 Form을 기술하는 방법은 유사하다.
class Post(models.Model):
title = models.CharField(max_length=20)
content = models.TextField()
class PostForm(forms.Form):
title = forms.CharField(max_length=20)
content = models.TextField()
(글을 쓰다보니, 티스토리 블로그 포스트에서 코드 하이라이트를 넣어줄 수 있도록 방법을 고안해봐야할 듯 싶다..)
귀가길에 신논현역 교보문고에 들려서 하와이 여행책을 사왔다. 책을 사러간 김에 진석쌤이 추천해주신 Python 책이 생각나서 대충 훑어보고 왔다. 클래스와 객체에 대해 논하는 9장까지 대충 훑어보고 나서 참 좋은 책이라 생각했다. 그런데 클래스 변수와, 인스턴스 변수에 대해서 다시 머릿속으로 개념을 정립하고 나서 Django의 Model과 Form을 기술할때를 생각해보니 이상했다.
위에서 보면 Post model을 정의할때 title, content를 마치 클래스 변수처럼 정의했기 때문이다. 프로젝트에서 무수히 많은 Post model의 instance가 만들어지고, DB에 저장될텐데, Post model에 정의된것이라고는 클래스 변수뿐이라는 사실이 매우 이상했던 것이다.
그래서 구글링을 아주 잠깐 해서 스택오버플로우 글을 획득했다. 정확히 이해하지 못했지만 요지는 이러하다. title, content는 "오늘의 일기", "집에서 빈둥거렸는데 너무나 즐거웠다." 같이 model instance의 실제 title, content를 의미하는 것이 아니라, Post model 객체의 내부 구조를 정의하는 객체라는 것이다. 즉, Python 언어를 창의적으로 잘 활용해서, Django는 실제로 Model, Form에게 기대하는 바를 저렇게 사용자가 쉽게 기술할 수 있도록 인터페이스를 만들어준 것이다.
신기하군.
'Python - Django' 카테고리의 다른 글
EC2에 배포한 Django 어플리케이션에서 Gmail SMTP로 발신 (0) | 2016.07.25 |
---|---|
[스크랩] Best Practices For Front-End Django Developers (0) | 2016.06.20 |
SQLite3의 데이터를 PostgreSQL로 이전하기 (0) | 2016.06.20 |
AWS EC2 인스턴스에 Django+Nginx+uWSGI+PostgreSQL로 배포하기 (0) | 2016.06.16 |
Django의 Windows 개발환경에서 PostgreSQL 사용하기 (2) | 2016.06.11 |