zoukankan      html  css  js  c++  java
  • Django get_object_or_404

        try:
            good_fruit_type = get_object_or_404(GoodsType,title="水果")
            fruit_goods = random.sample(list(good_fruit_type.goods_set.all()),2)
        except DatabaseError as e:
            logging.warning(e)

    get_object_or_404的介绍:我们原来调用django 的get方法(model.object.get()),如果查询的对象不存在的话,会抛出一个DoesNotExist的异常, 现在我们调用django get_object_or_404方法,它会默认的调用django 的get方法, 如果查询的对象不存在的话,会抛出一个Http404的异常,这样对用户比较友好, 如果用户查询某个产品不存在的话,直接显示404的页面给用户,比直接显示异常好。

     

    下面用个例子看来下:
    from django.shortcuts import get_object_or_404 
    product = get_object_or_404(Product, pk=1) 

    Product是要查询的model,后面的pk=1是查询条件,你可以根据你需要查询的情况来写条件。上面的例子也可以写成下面这样的形式:

    from django.http import Http404
    
    try:
        product = Product.objects.get(pk=1)
    except MyModel.DoesNotExist:
        raise Http404

    用model.object.get()方法查询对象,如果对象不存在的话,会抛出一个DoesNotExist的异常,这样将会使模型层与视图层耦合在一起。

    Django最重要的一个设计目标就是保持低耦合,用get_object_or_404可以使模型层和视图层低耦合。

  • 相关阅读:
    zabbix监控windows案例
    Ansible自动化运维工具-上
    Nagios监控的部署与配置
    ELK+Redis+Nginx服务数据存储以及Nginx日志的收集
    ELK5.3日志分析平台&部署
    Centos7X部署Zabbix监控
    LVS+Keepalived负载均衡
    Nginx+tomcat负载均衡
    smokeping
    Err.number错误号和可捕获的 Microsoft access 数据库引擎和 DAO错误说明
  • 原文地址:https://www.cnblogs.com/hooo-1102/p/11770102.html
Copyright © 2011-2022 走看看