Web 공부/Django

Model

sumiin 2022. 3. 24. 20:39
반응형
SMALL

모델 이해하기

from django.db import models

# Create your models here.
class Menu(models.Model):
    name=models.CharField(max_length=50)
    description=models.CharField(max_length=100)
    price=models.IntegerField()
    img_path=models.CharField(max_length=255)

    def __str__(self):
        return self.name

model은 class 형태이며 models.Model을 상속받아야함

모델 생성하거나 변경하면 장고에 반영해야함 

python manage.py makemigraitions
python manage.py migrate

터미널에 두 명령어를 입력하면 Django에 반영 완료 !

migrations 디렉토리를 보면 확인 가능

 

python manage.py showmigrations

migration 목록을 확인할 수 있음

 

python manage.py sqlmigrate {앱 이름} {migrate 번호}

파이썬으로 적어준 모델이 ORM을 통해서 어떻게 sql로 변했는지 볼 수 있음

 

python manage.py shell

shell환경 열림 

 

from {app_name}.models import {model}

foods앱의 Menu model에 접근

 

 

{model}.objects.all()

모든 데이터 조회하기

 

{model}.objects.create({필드명}={값})

데이터베이스에 데이터 저장하기 

 

{model}.objects.all().values()

모든 데이터 안의 세부 데이터 조회하기 

values()안에 필드 값 넣을 경우, 특정 필드만 조회 가능 

 

{model}.objects.order_by('필드') #오름차순
{model}.objects.order_by(-'필드') #내림차순

필드 순으로 정렬 가능 

 

 

get: 하나의 데이터를 조회 (id 같은 독립적인 필드를 사용할 때 유용)

filter: 여러 데이터를 조회

조건 키워드 : 필드명__조건키워드="조건"

필드명__contains="문자열" : 문자열이 포함된 데이터 조회

필드명__range=(시작,끝) : 조건 범위 내의 데이터 조회 

 

data=Menu.objects.get(조건)
data.{필드}='값'
data.save()

데이터 수정하기

 

data=Menu.objects.get(조건)
data.delete()

데이터 삭제

 

QuerySet

  • Django의 ORM을 이용해서 데이터베이스와 소통할 때 발생하는 자료형으로 list와 매우 비슷
  • Django는 sql문을 직접 쓰지 않고 python code를 쓰면 Django의 ORM을 이용해서 자동으로 SQL로 변환되고 그것을 이용해서 database와 소통
  • data 조회를 해서 받아오는 data는 queryset으로 들어가고 queryset을 list처럼 사용해서 데이터 가공 가능 

 

Django 관리자 도구

python manage.py createsuperuser 

관리자 계정 생성하기

 

python mana.py runserver 

개발 서버에서 /admin 페이지로 이동 

/admin 화면

 

from django.contrib import admin
from foods.models import Menu
# Register your models here.

admin.site.register(Menu)

foods 앱의 admin.py에 model을 등록해줘야 admin 페이지에 뜸

 

등록하면 이렇게 Foods에 Menus 모델이 생성된 것을 확인할 수 있음

관리자 페이지에서 데이터를 직접 가공(CRUD)할 수도 있음!!

반응형
LIST

'Web 공부 > Django' 카테고리의 다른 글

Django CRUD  (0) 2022.03.25
Django admin 페이지에서 줄바꿈 문제 해결 breaksbr  (0) 2022.03.25
Django 빠르게 배포하기  (0) 2022.03.25
Template과 View  (0) 2022.03.24
Django 구조 이해하기  (0) 2022.03.23