Tutorial, Django documents 02

이도현·2023년 8월 11일
0

1. 데이터베이스 설치

  • 기본적으로 SQLite를 사용
  • 다른 데이터베이스를 사용해보고 싶다면, 적절한 데이터베이스 바인딩을 설치하고, 데이터베이스 연결설정과 맞게끔 DATABASES’defualt’항목의 값을 다음의 키 값으로 바꿔주세요
#setting.py
ENGINE - 'django.db.backends.sqlite3', 'django.db.backends.postgresql'
#등등

# ----

INSTALLED_APPS = [ # Djnago 인스턴스에서 활성화된 모든 Djnago 어플리케이션
	django.contrib.admin # 관리용 사이트
	django.contrib.auth # 인증시스템
	django.contrib.contenttypes # 컨텐츠 타입을 위한 프레임 워크
	djnago.contrib.sessions # 세션 프레임워크
	django.contrib.messages # 메세징 프레임워크
	django.contrib.staticfiles # 정적 파일 관리 프레임 워

2. 모델 만들기

  • 모델: 부가적인 메타데이터를 가진 데이터베이스 구조
from django.db import models

class Question(model.Model):
	question_text = models.CharField(amx_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.IntegerFiled(default = 0)
  • 각 모델은 class django.db.models.Model의 하위 클래스로 표현
  • CharField: 문자필드, max_length가 필수
  • DatetimeField: 날짜와 시간
  • default 값 설정 가능
  • ForeignKey로 관계 설정

3. 모델의 활성화

  • model은 데이터베이스 스키마 생성, 객체 접근하기 위한 Python 데이터베이스 접근 API를 생성
  • 먼저 polls앱이 설치되었다는 것을 알려야 합니다.
#mysite/settings.py

INSTALLED-_APPS = [
	'Polls.apps.PollsConfig',
	# 생략...
]
  • python manage.py makemigrations polls 명령어 입력
  • 모델을 변경시켰음을 알림
  • python manage.py migrate
  • 변경사실을 저장

4. API 가지고 놀기

# python manage.py shell 명령어 입

>>> from polls.models import Choice, Question  # Import the model classes we just wrote.

# No questions are in the system yet.
>>> Question.objects.all()
<QuerySet []>

# Create a new Question.
# Support for time zones is enabled in the default settings file, so
# Django expects a datetime with tzinfo for pub_date. Use timezone.now()
# instead of datetime.datetime.now() and it will do the right thing.
>>> from django.utils import timezone
>>> q = Question(question_text="What's new?", pub_date=timezone.now())

# Save the object into the database. You have to call save() explicitly.
>>> q.save()

# Now it has an ID.
>>> q.id
1

# Access model field values via Python attributes.
>>> q.question_text
"What's new?"
>>> q.pub_date
datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=datetime.timezone.utc)

# Change values by changing the attributes, then calling save().
>>> q.question_text = "What's up?"
>>> q.save()

# objects.all() displays all the questions in the database.
>>> Question.objects.all()
<QuerySet [<Question: Question object (1)>]>
  • 많은 내용을 생략 했음
  • 관리

Django

profile
좋은 지식 나누어요

0개의 댓글