Hi Hi

'파이썬 기초 문법'에 해당되는 글 1건

  1. [Python Django] 1. 기초 문법과 데이터 모델링

[Python Django] 1. 기초 문법과 데이터 모델링

 

Django 모델과 모델링

프로젝트는 서비스처럼 전체 포괄 개념이고 어플리케이션은 프로젝트를 구성하는 부품이나 부위하고 할 수 있다.


Djang에서 모델은 어플리케이션 단위로 존재한다. 이 모델을 실제 DBMS에 연결하여 관리하는 체계 단위는 프로젝트이다.
mysql 은 DBMS에 접근하는 단위 혹은 물리 개념은 프로젝트이다. 그래서 프로젝트를 설정하는 settings.py 안에 DBMS 접근 정보를 써넣는다. 그리고 프로젝트에 속하는 각 어플리케이션과 어플리케이션은 모델 프로젝트가 접근하는 DBMS에서 정보를 다룬다.

쉽게 말해 Django로 만든 프로젝트는 한 번에 DBMS 하나만 접근할 수 있으며, 어플리케이션 역시 이 DB안에서만 데이터를 다룬다고 할 수 있다. 프로젝트가 접근 하는 DB 안에 어플리케이션 DB(테이블)이 여러 개 들어가게 되는 것이다.

models.py 안쪽 보기

Django 모델은 어플리케이션 단위로 존재한다고 했는데, 파일로 models.py 이다. 
from djanggo.db import models

# Create your models here.
 
from django.db import models는 djang에 있는 db 모듈에서(from django.db) models 라는 모듈을 가져오라(import)는 뜻이다.  
models 디렉토리(모듈) 전체가 아니라 그 안에 있는 query.py 파일만 가져오고 싶다면
from django.db.models import query
파이썬 코드 안에 models.query 라고 접근을 할 수 있다는 말이기도 하다.

# Create your models here.
이는 주석이다. 주석(comment)은 컴퓨터가 해석해서 실행하지 않는 부분이다.
하이썬엔 한 줄 주석 처리를 #으로 하고, 여러 줄을 주석 처리는 """""""(큰따옴표 세개)로 한다. 
 
Django 모델 꼴, 그리고 클래스

class 모델이름(models.Model):
   내용

모델이라고 해서 특별히 정해진 꼴이 있는 것이 아니라 클래스로 정의하면 되는데,
위에서 가져온 (import models) models를 넘겨 받아 이걸 이용해서 각 모델 구성 요소를 정의 하는 것이다.


클래스는  메소드(method) 와 프로퍼티(property)가 있다.
클래스를 자동차라고 하면,
메소드는 자동차의 행위라고 할 수 있다. 나간다 , 뒤로간다, 왼쪽으로 꺽는다, 문을 연다. 등등
프로퍼티는 엔진, 자동차 재질, 유리, 색깔 같은 요소를 뜻한다. 

메소드 : car.move()
프로퍼티 : car.color = 'green'

"블로그 글" 이라는 객체(클래스)가 있다.
불로그 글은 제목이나 본문등이 있는데, 이들은 블로그 글이 어떤 행위를 하는 걸 정의하지 않는다, 블로그 글을 구성하는"요소"이다.
 Django에서는 글 제목이나 본문은 블로그 글이란ㄴ 클래스의 프로퍼티로 정의한다.

블로그 글은 저장을 하거나 끄집어 내는 등 행위를 하거나 필요로 할 수 있다. 이런 행위들은 메소드로 정의 하는 것이다.


참고:http://www.hannal.net