반응형
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 페이지로 이동
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 |