Django 곤ORM - 단일 테이블 인스턴스
32354 단어 django
프로젝트 만들기
django-admin.py startproject app01
settings에서.py에서 INSTALLED 수정APPS
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01', #
)
모델 생성하기
프로젝트의 모델스.py
# app01/models.py
class Sites(models.Model):
id = models.AutoField(primary_key=True) # id ,
title = models.CharField(max_length=32) #
price = models.DecimalField(max_digits=5, decimal_places=2) #
publish = models.CharField(max_length=32) #
pub_date = models.DateField() #
명령을 집행하다
python3 manage.py migrate #
python3 manage.py makemigrations app01 # Django
python3 manage.py migrate app01 #
참고: 데이터베이스 연결 필요
데이터 추가
라우팅 구성
# app01/urls.py
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('add_book/', views.add_book),
]
# app01/views.py
from django.shortcuts import render,HttpResponse
from app01 import models
def add_book(request):
book = models.Book(title="python ",price=300,publish="hero",pub_date="2008-8-8")
book.save()
return HttpResponse(" !
")
from django.shortcuts import render, HttpResponse
from app01 import models
def add_book(request):
books = models.Book.objects.create(title=" ", price=200, publish=" ", pub_date="2010-10-10")
return HttpResponse(" !
")
데이터 찾기
# app01/views.py
from django.shortcuts import render,HttpResponse
from app01 import models
def add_book(request):
books = models.Book.objects.all()
print(books, type(books)) # QuerySet , list, url 。
return HttpResponse(" !
")
# app01/views.py
from django.shortcuts import render,HttpResponse
from app01 import models
def add_book(request):
books = models.Book.objects.filter(pk=5)
print(books)
print("//")
books = models.Book.objects.filter(publish='python', price=300)
print(books, type(books)) # QuerySet , list。
return HttpResponse(" !
")
주:pk는 primary key라는 뜻으로 id에 해당한다
# app01/views.py
from django.shortcuts import render,HttpResponse
from app01 import models
def add_book(request):
books = models.Book.objects.exclude(pk=5)
print(books)
print("//")
books = models.Book.objects.exclude(publish=' ', price=300)
print(books, type(books)) # QuerySet , list。
return HttpResponse(" !
")
# app01/views.py
from django.shortcuts import render,HttpResponse
from app01 import models
def add_book(request):
books = models.Book.objects.get(pk=5)
books = models.Book.objects.get(pk=18) # ,
books = models.Book.objects.get(price=200) # ,
print(books, type(books)) #
return HttpResponse(" !
")
참고:
1. 매개 변수의 필드 이름은 인덱스 2를 붙이고, 내림차순은 필드 앞에 기호를 붙인다 -
# app01/views.py
from django.shortcuts import render,HttpResponse
from app01 import models
def add_book(request):
books = models.Book.objects.order_by("price") # ,
books = models.Book.objects.order_by("-price") # ,
return HttpResponse(" !
")
# app01/views.py
from django.shortcuts import render,HttpResponse
from app01 import models
def add_book(request):
books = models.Book.objects.count() #
books = models.Book.objects.filter(price=200).count() #
return HttpResponse(" !
")
from django.shortcuts import render,HttpResponse
from app01 import models
def add_book(request):
books = models.Book.objects.exists()
# , QuerySet ,
books = models.Book.objects.count().exists()
# , QuerySet ,
books = models.Book.objects.first().exists()
return HttpResponse(" !
")
참고: 판단된 데이터 유형은QuerySet 유형 데이터일 수 있습니다.
참고:
1. 모델류의 대상을 무겁게 하는 것은 의미가 없다. 왜냐하면 모든 대상은 서로 다른 존재이기 때문이다.
2,distinct () 는 일반적으로 연합values 또는valueslist 사용
from django.shortcuts import render,HttpResponse
from app01 import models
def add_book(request):
#
books = models.Book.objects.values_list("publish").distinct() # , 。
books = models.Book.objects.distinct()
return HttpResponse(" !
")
filter () 방법은 이중 밑줄을 기반으로 하는 모호한 검색 (exclude 동일)
from django.shortcuts import render,HttpResponse
from app01 import models
def add_book(request):
# 200 300
books = models.Book.objects.filter(price__in=[200,300])
return HttpResponse(" !
")
# 200
books = models.Book.objects.filter(price__gt=200)
# 200
books = models.Book.objects.filter(price__gte=200)
# 300
books=models.Book.objects.filter(price__lt=300)
# 300
books=models.Book.objects.filter(price__lte=300)
books = models.Book.objects.filter(title__contains=" ")
books = models.Book.objects.filter(title__icontains="python") #
데이터 삭제
.delete()
books = models.Book.objects.filter(pk=8).first().delete()
.delete()
반환값: 원조, 첫 번째 매개 변수는 영향을 받은 줄 수
books = models.Book.objects.filter(pk__in=[1, 2]).delete()
참고:
1. Django가 데이터를 삭제할 때 SQL 제약 ON DELETE CASCADE의 행위를 모방한다. 즉, 한 대상을 삭제하면 그것과 관련된 두 개의 키 대상도 삭제한다.
2. delete() 방법은QuerySet 데이터 형식의 방법이지만 Manager 자체에는 적용되지 않습니다.모든 데이터를 삭제하려면 all를 쓰지 않으면 안 됩니다.
books=models.Book.objects.delete() #
books=models.Book.objects.all().delete() #
수정
. =
.save()
반환값:편집된 모델 클래스의 객체
방법 2:QuerySet 클래스 데이터
update( = )
반환값:정수, 영향 받는 행 수from django.shortcuts import render,HttpResponse
from app01 import models
def add_book(request):
books = models.Book.objects.filter(pk__in=[7, 8]).update(price=888)
return HttpResponse(books)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.