django 시간 범위별 데이터베이스 실례 코드 조회
웹 폼에서 사용자가 지정한 시간 범위를 가져와 데이터베이스에서 이 시간 범위 내의 데이터를 조회하는 간단한 기능을 소개합니다.
데이터베이스의 모델은 다음과 같습니다.
class book(models.Model):
name = models.CharField(max_length=50, unique=True)
date = models.DateTimeField()
def __unicode__(self): return self.name
만약 우리가 폼에서 얻은 Request를 가정한다면.GET 내의 시간 범위는 처음에 다음과 같습니다.
request.GET = {'year_from': 2010, 'month_from': 1, 'day_from': 1,
'year_to':2013, 'month_to': 10, 'day_to': 1}
모델에 저장된date 형식이
models.DateTimefield()
이기 때문에 리퀘스트의 데이터를datetime 형식으로 처리해야 합니다. (이것은django의 응답 코드의 앞부분입니다.)
import datetime
def filter(request):
if 'year_from' and 'month_from' and 'day_from' and\
'year_to' and 'month_to' and 'day_to' in request.GET:
y = request.GET['year_from']
m = request.GET['month_from']
d = request.GET['day_from']
date_from = datetime.datetime(int(y), int(m), int(d), 0, 0)
y = request.GET['year_to']
m = request.GET['month_to']
d = request.GET['day_to']
date_to = datetime.datetime(int(y), int(m), int(d), 0, 0)
else:
print "error time range!"
다음은 획득한
date_from
와 date_to
를 단점으로 데이터베이스를 선별할 수 있습니다. __range
함수를 사용하여 위 코드에 데이터베이스 조회 동작을 추가해야 합니다.
import datetime
def filter(request):
if 'year_from' and 'month_from' and 'day_from' and\
'year_to' and 'month_to' and 'day_to' in request.GET:
y = request.GET['year_from']
m = request.GET['month_from']
d = request.GET['day_from']
date_from = datetime.datetime(int(y), int(m), int(d), 0, 0)
y = request.GET['year_to']
m = request.GET['month_to']
d = request.GET['day_to']
date_to = datetime.datetime(int(y), int(m), int(d), 0, 0)
book_list = book.objects.filter(date__range=(date_from, date_to))
print book_list
else:
print "error time range!"
총결산
이상은django가 시간 범위에 따라 데이터베이스 실례 코드를 조회하는 모든 내용에 대한 내용입니다. 여러분께 도움이 되었으면 합니다.관심 있는 친구는 본 사이트의 다른 관련 주제를 계속 참고할 수 있습니다. 부족한 점이 있으면 댓글로 지적해 주십시오.본 사이트에 대한 여러분의 지지에 감사 드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.