반응형
장고를 공부하다 아래 코드를 만났다.
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)
갑자기 models.Model, models.CharField 를 사용하는 것이 아닌가?
from django.db import models
from, import를 사용해서 어떻게 Model, CharField 를 사용할 수 있는지 찾아봤다.
__init__.py
어떤 폴더 안에 __init__.py 파일이 있다면 이것은 그 폴더가 파이썬 모듈이라는 것을 의미한다.
예를 들어 다음과 같이 폴더가 구성되어 있다고 하자.
exp
+- __init__.py
+- module.py
__init__.py , module.py 파일의 내용을 살펴보자.
__init__.py
from exp.module import *
module.py
TMP_CONSTANT_VALUE = 50
module.py 파일에 간단하게 상수만 입력했다.
이제 exp 디렉토리가 있는 위치에서 'python' 을 입력해 인터프리터를 실행시킨 뒤 아래와 같이 입력하자.
python3
Python 3.6.7
>>> import exp
>>> exp.TMP_CONSTANT_VALUE50
'exp' 폴더를 import한 뒤 'exp.TMP_CONSTANT_VALUE'를 입력하면 module.py 안의 상수에 접근할 수 있다.
이러한 변수 혹은 상수 뿐만 아니라 메소드, 클래스 또한 '__init__.py'에 명시만 된다면 위와 같이 사용할 수 있다.
아래 블로그를 참고하여 포스트를 작성했습니다.
http://studymake.tistory.com/46
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] permutations & combinations (순열과 조합) (0) | 2021.02.02 |
---|---|
[Python] 문자열로 된 수식을 계산하는 eval 함수 (0) | 2021.02.01 |
[Python] 2차원 리스트 90도 회전 (0) | 2021.01.31 |
[Python] sorted() 다중조건으로 정렬하는 방법 (0) | 2021.01.13 |
[Python] deque 사용법 (0) | 2021.01.11 |