프로그래밍 언어/Python

[Python] 폴더를 파이썬 모듈로 만들기

benjykim 2018. 12. 31. 22:28
반응형

장고를 공부하다 아래 코드를 만났다.



polls/models.py
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_VALUE

50


'exp' 폴더를  import한 뒤 'exp.TMP_CONSTANT_VALUE'를 입력하면 module.py 안의 상수에 접근할 수 있다.


이러한 변수 혹은 상수 뿐만 아니라 메소드, 클래스 또한 '__init__.py'에 명시만 된다면 위와 같이 사용할 수 있다.





아래 블로그를 참고하여 포스트를 작성했습니다.

http://studymake.tistory.com/46


반응형