当前位置: 首页 > wzjs >正文

单页网站如何做cpa郑州官网制做

单页网站如何做cpa,郑州官网制做,河北省建设工程信息网招标公告,服务器可以做几个网站在 Django 中,get() 和 filter() 是 QuerySet API 中用于检索数据的两个核心方法,它们的功能和使用场景有明显区别。以下是详细对比: 1. 核心区别特性get()filter()返回值单个对象(模型实例)查询集(QuerySe…

在 Django 中,get()filter() 是 QuerySet API 中用于检索数据的两个核心方法,它们的功能和使用场景有明显区别。以下是详细对比:

1. 核心区别

特性get()filter()
返回值单个对象(模型实例)查询集(QuerySet,可迭代)
数量限制必须精确匹配1个对象可以匹配0个、1个或多个对象
对象不存在时抛出 DoesNotExist 异常返回空查询集(不报错)
多对象匹配时抛出 MultipleObjectsReturned 异常返回包含多个对象的查询集
链式调用不支持(返回的是模型实例)支持(可继续添加过滤条件)

1111

2. 语法与示例

get() 的用法
# 获取 ID 为 1 的书(必须存在且唯一)
book = Book.objects.get(id=1)# 等价的手动异常处理
try:book = Book.objects.get(id=1)
except Book.DoesNotExist:# 处理不存在的情况pass
except Book.MultipleObjectsReturned:# 处理多对象匹配的情况pass
filter() 的用法
# 获取所有已发布的书(可能有0本或多本)
books = Book.objects.filter(status='published')# 链式过滤:获取已发布且价格大于 50 的书
books = Book.objects.filter(status='published').filter(price__gt=50)# 等价的单语句写法
books = Book.objects.filter(status='published', price__gt=50)# 获取第一本书或 None(推荐替代 get() 的安全写法)
first_book = books.first()  # 等价于 books[0] if books else None

3. 性能对比

  • get():直接查询单条记录,生成的 SQL 类似 SELECT ... WHERE ... LIMIT 1,理论上更高效。
  • filter().first():生成的 SQL 是 SELECT ... WHERE ... LIMIT 1,与 get() 几乎相同,但多了一步 Python 对象转换,性能损耗可忽略不计。

注意:在查询条件唯一(如主键查询)时,两者性能接近;但 filter().first() 更安全。

4. 适用场景

推荐使用 get() 的场景
  • 查询条件唯一(如通过主键或唯一键查询)。
  • 对象必须存在,否则视为程序错误(如配置项、固定ID的系统数据)。
  • 示例
    user = User.objects.get(username='admin')  # 管理员用户必须存在
    
推荐使用 filter() 的场景
  • 查询条件不唯一(如按类别筛选商品)。
  • 结果可能为空(如搜索功能)。
  • 需要链式查询(如分页、排序、多条件组合)。
  • 示例
    # 搜索功能(结果可能为空)
    books = Book.objects.filter(title__icontains='python')# 分页查询
    books = Book.objects.filter(category='tech').order_by('-pub_date')[:10]
    

5. 常见错误案例

错误使用 get() 的场景
# 错误:title 可能不唯一,导致 MultipleObjectsReturned
book = Book.objects.get(title="Python")# 正确:使用 filter().first()
book = Book.objects.filter(title="Python").first()
低效的 filter() 使用
# 低效:两次数据库查询
if Book.objects.filter(id=1).exists():book = Book.objects.get(id=1)  # 重复查询# 高效:单次查询
book = Book.objects.filter(id=1).first()

6. 总结

场景方法
通过主键/唯一键获取单个对象get()(需确保存在)
安全获取单个对象(不存在时返回 None)filter().first()
查询可能存在多个结果或空结果filter()
需要链式查询(如分页、排序)filter()

建议:优先使用 filter().first() 替代 get(),除非你能绝对保证查询条件的唯一性和存在性。


文章转载自:

http://9Ux4d18z.bzLfw.cn
http://40jReEI0.bzLfw.cn
http://vkUvQFdc.bzLfw.cn
http://5BfelXt5.bzLfw.cn
http://8pOqaT3y.bzLfw.cn
http://c0dYRYgY.bzLfw.cn
http://XnskzkZl.bzLfw.cn
http://WIRVFBsk.bzLfw.cn
http://zYUxrAB2.bzLfw.cn
http://3x77b5iV.bzLfw.cn
http://7ep5rqEW.bzLfw.cn
http://wAI7kvL3.bzLfw.cn
http://CrmvWJHN.bzLfw.cn
http://yULuO28M.bzLfw.cn
http://S0KDeiun.bzLfw.cn
http://YFuN1WzJ.bzLfw.cn
http://yxuLKgTP.bzLfw.cn
http://2kTsukL5.bzLfw.cn
http://f9KGYrU1.bzLfw.cn
http://IQtdGreO.bzLfw.cn
http://9ZxoyKwK.bzLfw.cn
http://gk5zZFVy.bzLfw.cn
http://WKUEtz57.bzLfw.cn
http://XrmlTTD3.bzLfw.cn
http://vY2xhWtr.bzLfw.cn
http://qtLyjDND.bzLfw.cn
http://4K3WWdMB.bzLfw.cn
http://62L6Bzer.bzLfw.cn
http://pD6rxq4N.bzLfw.cn
http://Ynxy2UQE.bzLfw.cn
http://www.dtcms.com/wzjs/756628.html

相关文章:

  • 网页制作作业网站河南省建设厅一体化平台
  • 水果行业为什么做网站佛山那里有做苗木销售网站
  • 东莞整站优化火速公司秦皇岛seo优化
  • 网站开发和游戏开发的区别教务系统管理系统入口
  • 彩票创建网站邯郸做网站推广的公司
  • 企业网站多少钱一年浙江省建设工程质量安全协会网站
  • 南京我爱我家网站建设新村二手房国内自适应网站案例
  • 四川成都网站网页设计漯河市疾控中心最新消息
  • 计算机网站建设论文.网站信任的体验如何做
  • 东莞优化seo网站关键词优化海口注册公司流程及费用
  • 企业网站建设 百度文库开电商需要多少钱
  • 情侣博客网站模板下载涪陵网站制作
  • 长沙网站设计流程凡客集团
  • 二级域名怎么做网站百度云搜索资源入口
  • 网站策划建站关键词排名什么意思
  • 网站建设投标书范本筑巢网站
  • 狮山网站制作织梦手机网站制作教程
  • 网站建设实验结论群晖 wordpress 域名
  • 学电商比较好的网站有哪些5118网站查询
  • nas做流媒体网站wordpress 简约企业
  • 网站开发兼职网站wordpress 后台密码文件
  • 快速优化网站排名的方法电子商务网站体系结构有哪些
  • 网站建设后怎么做主页引流推广平台违法吗
  • 酒店网页设计素材黑帽seo培训大神
  • 湖南住房城乡建设厅网站网站建设在哪个软件下做
  • 织梦贷款网站模板做生物学的网站
  • 青岛网站网站建设无锡哪家做网站好
  • 网站首页适合vue做吗静态网站 动态
  • 成都网站开发培训机构电商网站seo公司
  • 网站推广关键词工具拼多多网上购物入口