- 浏览: 2669732 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
对于此方法只想中总结一点:因为它会使用默认的django.db.models.manager.Manager来执行数据操作,所以如果你在mananger里为默认的get方法添加了cache的话,对get_object_or_404来说是没有效果的。
django get_object_or_404 是django shortcuts模块里面一个比较简便的方法,特别是用django get来操作数据库的时候,可以帮 我们少写一些代码,加快开发速度。
get_object_or_404 的介绍: 我们原来调用django 的get方法,如果查询的对象不存在的话,会抛出一个DoesNotExist的异常, 现在我们调用django get_object_or_404方法,它会默认的调用django 的get方法, 如果查询的对象不存在的话,会抛出一个Http404的异常,我感觉这样对用户比较友好, 如果用户查询某个产品不存在的话,我们就显示404的页面给用户,比直接显示异常好。
get_object_or_404一般需要3个参数:
1. modelname:一个model,manage,或query对象。
2. *args
3. **kwargs 而后面的*args,**kwargs则是查询的时候用到的参数。
下面用个例子看来下:
from django.shortcuts import get_object_or_404
product = get_object_or_404(Product, pk=1)
Product是要查询的model,后面的pk=1是查询条件,你可以根据你需要查询的情况来写条件。 上面的例子也可以写成下面这样的形式:
try :
product = Product . objects . get (pk = 1 )
except MyModel . DoesNotExist :
raise Http404
看来用django get_object_or_404方法可以省下你很多操作。
发表评论
-
django 处理unicode编码
2013-04-28 22:18 2845django.util.encoding.py impor ... -
django lazy user实现
2013-04-26 15:48 1230代码如下: from people.service ... -
django db models探索
2013-03-24 16:04 1809一、django db models结构 django ... -
django + sqlalchemy pool 测试
2013-03-15 22:59 13951.修改gevent /duitang/dist/sys ... -
django template探索
2013-01-04 18:18 1251由于需要解决django template问题,研究了djan ... -
django db backends探索
2012-12-29 18:20 2489由于需要解决django db长连接的问题,最近看了看djan ... -
MySQL Connection Pooling with Django and SQLAlchemy
2012-12-28 21:54 0Here's a quick and dirty recipe ... -
Launching a High Performance Django Site
2012-12-28 21:39 1081Are the brakes on your Django a ... -
django 性能优化
2012-12-28 17:24 2128django默认的一些系统性能低下,无法支撑大流量请求,一些优 ... -
让Django支持数据库长连接
2012-12-28 17:05 1818原文:http://www.cnblogs.com ... -
django 的BaseMemcachedCache线程安全问题
2012-10-21 15:11 1132注意,django.core.cache.backends.m ... -
django request 获取请求的URL
2012-10-17 17:17 22093request.get_host() 获取请求地址 ... -
django user model
2012-09-12 22:01 951http://stackoverflow.com/questi ... -
python uwsgi
2012-07-30 17:21 0之前的文章已经提到了 django+fastcgi的运行并 ... -
在生产系统使用Tornado WebServer来代替FastCGI加速你的Django应用
2012-07-30 17:19 5原文:http://www.cnblogs.com/Alexa ... -
python web.py
2012-07-30 17:04 949使用web.py能快速启动一个web服务。 # -*- c ... -
浅析 Django runserver 的 autoreload 功能
2012-07-30 16:53 5157浅析 Django runserver 的 auto ... -
django auth_user.get_profile
2012-07-24 12:29 2630django 对 auth_user 提供了扩展get_pro ... -
django + postfix 搭建邮件服务
2012-07-23 14:48 1399email 配置: SERVER_EMAIL = &q ... -
django 中文问题
2012-07-17 16:45 1603好像每个国外的开源框架都会遇到中文问题,今天又被django ...
相关推荐
`django-guardian`提供了`@permission_required`和`@permission_required_or_403`装饰器,以及`get_object_or_404`和`get_list_or_404`的扩展版本,它们接受额外的`obj`参数来指定要检查权限的对象。 ```python ...
对于删(Delete),可以使用`get_object_or_404`来获取特定ID的对象,然后调用`delete()`方法: ```python from django.shortcuts import get_object_or_404 def delete_user(request, user_id): user = get_...
from django.shortcuts import render, get_object_or_404, redirect from .models import BlogPost from .forms import BlogPostForm def blog_list(request): posts = BlogPost.objects.all().order_by('-pub_...
from django.shortcuts import render, get_object_or_404, redirect from .forms import EmployeeForm from .models import Employee def edit_employee(request, pk): employee = get_object_or_404(Employee, ...
from django.shortcuts import render, get_object_or_404 from .models import Question def detail(request, question_id): question = get_object_or_404(Question, pk=question_id) return render(request...
from django.shortcuts import render, get_object_or_404, redirect from .models import Post from .forms import PostForm def post_list(request): posts = Post.objects.order_by('-pub_date') return ...
product = get_object_or_404(Product, pk=product_id) session = request.session cart = session.get('cart', {}) if product_id in cart: cart[product_id] += 1 else: cart[product_id] = 1 session['...
from django.shortcuts import render, get_object_or_404 from .models import NiceNumber def list_numbers(request): numbers = NiceNumber.objects.all() return render(request, 'nicenum/numbers_list....
- 引入了`get_object_or_404()`和`get_list_or_404()`的类方法,方便在类视图中使用。 - `ModelForm`的`save()`方法现在默认为`commit=True`,提高一致性。 2. Django 2.1 版本: Django 2.1是对2.0的进一步完善...
from django.shortcuts import render, get_object_or_404 from .models import Post, Attachment def post_detail(request, post_id): post = get_object_or_404(Post, pk=post_id) attachments = Attachment....
from django.shortcuts import render, get_object_or_404 from .models import Post, Comment def post_list(request): posts = Post.objects.order_by('-pub_date') return render(request, 'blog/post_list....
form = UserProfileForm(request.POST, instance=get_object_or_404(UserProfile, pk=user_id)) if form.is_valid(): form.save() return redirect('success_url') # 成功后跳转的URL else: form = ...
from django.shortcuts import render, get_object_or_404, redirect from .models import Article from .forms import ArticleForm def article_create(request): if request.method == 'POST': form = ...
8. **其他小改进**:还有许多其他的小改进,如`get_object_or_404`和`get_list_or_404`函数现在支持`QuerySet`的`select_related`和`prefetch_related`方法,这能提高数据检索的效率。 在安装Django 2.0时,确保你...
from django.shortcuts import get_object_or_404 from django_sieve.filters import SieveFilterSet class MyModel(models.Model): name = models.CharField(max_length=255) age = models.IntegerField() def ...
from django.shortcuts import render, redirect, get_object_or_404 from .models import FileModel from .forms import UploadFileForm def upload_file(request): if request.method == 'POST': form = ...
question = get_object_or_404(Question, pk=question_id) return render(request, 'polls/detail.html', {'question': question}) def vote(request, question_id): # 处理投票逻辑... return redirect('polls...
from django.shortcuts import render, get_object_or_404 from .models import Post def index(request): posts = Post.objects.all() return render(request, 'blog/index.html', {'posts': posts}) def post_...
对于数组和嵌套对象,`json_object_array_length()`和`json_object_object_get_entry()`等函数可以帮助我们遍历和访问。例如,遍历一个JSON数组并打印其元素: ```c json_object *jarray = json_object_object_get...
2. **get_object_or_404()**: 这个函数是一个快捷方式,用于在模板中获取对象,如果对象不存在,它将触发404错误页面。这减少了代码中的重复性,并且提高了代码的可读性。 3. **render_to()**: 这个装饰器允许你...