django 시간 범위별 데이터베이스 조회
2396 단어 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 형식이 모델스이기 때문입니다.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!"
이제 획득한datefrom 및 dateto는 단점으로 데이터베이스를 선별했습니다.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!"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.