Django QuerySet对象,get()方法
模型参考上一章内容:
Django QuerySet对象,filter()方法-CSDN博客
Django的QuerySet对象的get()方法用于从数据库中获取单个对象。
1,添加视图函数
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.")
2,添加html代码
Test/templates/11/book_detail.html
书籍列表
书籍:{{ book }}
{{ book.title }}
作者: {{ book.author }}
日期: {{ book.publication_date }}
价格: {{ book.price }}
3,添加路由地址
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'),
]
4,访问页面
http://127.0.0.1:8000/app11/get_book_view/
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!





