赞
踩
模型参考上一章内容:
Django QuerySet对象,filter()方法-CSDN博客
Django的QuerySet对象的get()方法用于从数据库中获取单个对象。
Test/app11/views.py
- from django.shortcuts import render
- from .models import Post
-
- def index(request):
- posts = Post.objects.all()
- return render(request, '11/index.html', {'posts': posts})
-
-
-
- # apps/books/views.py
-
- from django.shortcuts import render
- from .models import Book
-
- def book_list_view(request):
- # 使用filter()方法获取所有价格在10到20之间的书籍
- # books = Book.objects.filter(price__gte=10, price__lte=20) # __gte是“greater than or equal to”(大于等于)的缩写,__lte是“less than or equal to”(小于等于)的缩写。
- # books = Book.objects.filter(price__gt=10) # 在Django的ORM(对象关系映射)查询中,__gt是过滤条件的一个特殊语法,用于表示“大于”(greater than)。
- books = Book.objects.filter(price__lt=29.99) # __lt 是“less than”(小于)的缩写。
- return render(request, '11/book_list.html', {'books': books})
-
- def get_book_view(request):
- try:
- # 使用get()方法获取标题为"Python Cookbook"的书籍
- book = Book.objects.get(id=19)
- # 现在book变量包含了匹配的书籍对象
- print(book)
- return render(request, '11/book_detail.html', {'book': book})
- except Book.DoesNotExist:
- # 如果没有找到匹配的书籍,返回错误信息
- return HttpResponse("Book not found.")
- except Book.MultipleObjectsReturned:
- # 如果找到多个匹配的书籍,返回错误信息
- return HttpResponse("Multiple books found with the same title.")
Test/templates/11/book_detail.html
- <!DOCTYPE html>
- <html lang="zh">
- <head>
- <meta charset="UTF-8">
- <title>书籍列表</title>
- </head>
- <body>
- <h2>书籍:{{ book }}</h2>
- <h1>{{ book.title }}</h1>
- <p>作者: {{ book.author }}</p>
- <p>日期: {{ book.publication_date }}</p>
- <p>价格: {{ book.price }}</p>
- </body>
- </html>
Test/app11/urls.py
- from django.urls import path
- from . import views
-
- urlpatterns = [
- path('index/', views.index, name='index'),
- path('book_list_view/', views.book_list_view, name='book_list_view'),
- path('get_book_view/', views.get_book_view, name='get_book_view'),
- ]
http://127.0.0.1:8000/app11/get_book_view/
可以看到成功获取到了id为19的数据了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。