목차
📌 app과 관련된 정보를 저장할 model
? django에서 보통 model 이름은 대문자로 시작하고 단수형으로 쓴다.
#C:\Code\mysite\elections\models.py
class Candidate(models.Model):
name = models.CharField(max_length=10)
introduction = models.TextField()
area = models.CharField(max_length=15)
party_number = models.IntegerField(default=0)
📌 DB를 쓰는 이유 : 프로그램은 종료되는 순간 memory상에서 사라지므로, 계속 데이터를 보존하기 위해 DB를 사용.
아래와 같이 db.sqlite3 의 마지막 저장 시간을 알아둔다.
입력 후 다음과 같이 DB 초기화 파일이 생성된 것을 확인한다.
위 와같이 DB 공간이 생성되면 LastWriteTime 이 변경된 것을 확인할 수 있다.
#C\Code\mysite\settings.py
...
INSTALLED_APPS = [
...,
'elections' #추가
]
...
🎯 admin 사용자 만들기
🎯 서버 실행
🎯 admin
💡 만약 위 과정중 실수로 잘못된 절차를 진행했다면 아래 명령어로 데어터 베이스를 삭제한다.
python mange.py flush --database DB_NAME
위 명령을 실행하면 특정 DB를 삭제한다. --database 설정을 안하면, 현재 사용중인 DB를 알아서 선택한다.
DB를 잘못 만든경우 db.sqlite3 파일을 삭제하면 된다.
📌 python에서는 object를 표현하는 문자열을 정의할 때는 __str__
메소드를 오버라이딩 한다. 예를 들어 위에서 등록한 Candidate의 이름으로 object를 표현하고 싶은 경우 아래와 같이 수정한 후 브라우저를 새로고침 하면 후보자 이름이 보인다.
#C\Code\mysite\elections\models.py
from django.db import models
class Candidate(models.Model):
...
def __str__(self):
return self.name #object 를 출력하면 name이 보인다.
📌 DB에 모델이 저장된 구조
candidate 테이블에서 각 데이터 필드는 column(열)으로, 각 Candidate의 정보는 row(행)으로 저장되어 있다.
📌 데이터에 접근하는 방법
Candidate 테이블에 등록한 정보를 보기 위해서는
from django.shortcuts import render
from django.http import HttpResponse
from .models import Candidate #models 에 정의된 Candidate를 import
# Create your views here.
def index(request):
candidates = Candidate.objects.all() #Candidate에 있는 모든 객체를 불러온다.
str = '' #마지막에 return해 줄 문자열이다.
for candidate in candidates:
#<br>은 html 에서 다음 줄로 이동하기 위해 쓰인다.
str += "<p>{} 기호{}번({})<br>".format(candidate.name, candidate.party_number, candidate.area)
str += candidate.introduction + "</p>" #<P>는 html에서 단락을 바꾸기 위해 쓰인다.
return HttpResponse(str)
결과
[Python] Django url/결과 저장/결과 보기 (0) | 2017.08.14 |
---|---|
[Python] 장고 shell/템플릿으로 html 불러오기/템플릿에 정보 체우기/MVC 패턴/여론조사 모델 (0) | 2017.08.11 |
[Python Django 설치 및 프로젝트 만들기 (feat.pip) (0) | 2017.08.10 |
Python 주소록 프로젝트 (0) | 2017.07.25 |
Python XML 처리 (0) | 2017.07.25 |