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

复制代码
<!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>

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/

可以看到成功获取到了id为19的数据了

相关推荐
如夏倾城1 小时前
百度文心(容易被忽略的好用AI)使用方式
人工智能·python·百度·语言模型·dubbo
用户019027581611 小时前
quotes 实时价和 klines 最新收盘价为什么对不上?
python
少司府2 小时前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
打工仔折腾 AI3 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
火云代理3 小时前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip
SomeOtherTime3 小时前
Rust 闭包语法和原理(AI回答)
开发语言·后端·rust
初学AI的小高4 小时前
Agent 工具太多怎么办:BM25 检索、依赖补全与按需加载实战
后端·agent
用户6602676118794 小时前
AI 代码上线前的第 24 道门禁:上线失败时,怎样在 10 分钟内退回?
后端·架构
NishikiAsumi07214 小时前
一次170万行的导出:sql优化远没有加索引这么简单
后端
2601_967979125 小时前
Python第七十四讲 异常处理完全精通 try-except零基础保姆级教程
python·异常处理·编程教程·错误处理·try-except