Django数据层提供各种途径优化数据的访问,一个项目大量优化工作一般是放在后期来做,早期的优化是“万恶之源”,这是前人总结的经验,不无道理。如果事先理解Django的优化技巧,开发过程中稍稍留意,后期会省不少的工作量。 一 利用标准数据库优化技术: 传统数据库优化技术博大精深,不同的数据库...
刚开始开发博客的时候,本来想让博客按照阅读量,评论量,赞成数等属性,根据某个计算公式计算结果来排序,但后来因为在Django的ORM里不知道怎么写,又不想混杂一些SQL语句,所以一直没有实现。到了现在,想想通过ORM来实现,还是无法做到的。因为Django的QUERYSET里,根据几个属性的计算(如:分别...
上次的《Django静态文件的配置》,说的主要是针对开发环境的配置。在开发中难免要处理网站的css js image等静态文件,不用顾及性能,安全的问题,交给Django内部处理好了;但如果正式部署到服务器的时候,这样的配置就会影响到性能和安全性了,这时怎么办呢?嗯,交给Nginx处理好了。 假如项目的目...
Django的select_related()在1.3.1之前(包括1.3.1)都存在性能的问题,今天使用debug_toolbar大概测试了一下,depth=1,发现性能损失了20%以上,如果不指定depth,model关系复杂的时候,可能会损失更多。select_related()对关联多的实体本身是一个很好的方案,采用了内连接,减少数据库多次发起连接...
标签:Django
Uploadify组件上传文件很酷,可以实现文件进度上传,而且可以批量上传各种文件。好处还很多,具体详情登到官网看看文档了解吧。在同类组件中,Uploadify做的也很出色。打算在Django中用它,两个东西结合使用,也算简单,但有些细节需要记下来,以便以后重用。 这次只说上传图片部分,至于上传文件,...
上回的《Django和Ajax的那些事儿-Ajax Get》,讲过$.get(),它是从Django服务端获取我们想要的数据,然后渲染到前端html。今天说到Post方式,葫芦画瓢,让人想:会不会有$.post()。嗯,没错,的确有$.post(),官网示例: $.post("test.cgi", { name: "John", time: "2pm" }, function(...
如果看过Jquery的ajax文档,很容易在各平台使用他们,ajax也不算是什么新鲜的事了,在Django中结合Jquery使用Ajax,让Django开发的应用发挥更好的用户体验,同时降低服务器的负担,也不是难事。 来看Jquery下Ajax的使用说明,http://api.jquery.com/category/ajax/,哗,有十几个函数,如果想更生动...
自己购买了个廉价的vps,部署Django开发的网站,汲取强大互联网的信息,结合自己需要的环境尝试去搭配,从中把最常用的工具和命令记录下来。服务器我选择Debian,觉它更适合自己。Debian自带主流版本的Python,最先要安装的是easy_install 和pip,因为这两个工具,可以方便安装python所需要的类库。...
Django 1.3版本以后,对models外键进行了扩展,记得之前models的外键删除,都是级联删除的,举个例子好理解:Cateogry和Blog关系,Cateory有多个Blog,所以常常在Blog实体里新建一个category的外键,当我们删除一个Category的时候,归属该Category的所有Blog,同时都被删除了,这就是级联删除了。 ...
Django ORM捨遗--返回QuerySets的某些函数
整个Django框架,如果要问喜欢那部分,我首先想到的就是它的ORM;Django集成的ORM好用,秉承了Pythonic的理念,还有很浓的OO味道。单个看ORM的函数,似乎是管中窥豹,如果你把各种函数组合起来写,你会发现,原来也可以这么用的,太酷了吧?但还是单独看看这些函数的,等你逐个了解了,一气呵成的感...
Django到了1.2.5版本以上,Ajax POST请求的使用发生了一些改变,我们还记得前些版本1.2,Django加入了CSRF机制,大大增强了网络请求的安全性,正是因为这点,现在的Django对页面任何POST请求的数据进行跨域攻击保护。当你升级到1.2.5或更高版本后,你会发现以前1.2.4版本的Ajax POST脚本方法都不能...
gravatar是什么?从它的全拼字母A Globally Recognized Avatar来识别,大概可以理解为:全球公认的头像;全球认证的头像...你可以到gravatar官方网站上传自己的头像,然后到第三方网站上发帖留言写博客...这时网站上就显示你的头像了,前提条件是这个第三方网站必须支持gravatar应用才行,以下就是...
把Django和Ajax放在一起,那是很久远的事了,有人说在Ajax大紫大红的时候,Django错失了机会,没有把Ajax集成到自身,借助Ajax的这股东风传播自己。而如今有些人还觉得遗憾,但也有些人感到庆幸;说遗憾,那些人会指着Rails,说:看,Rails当年就是因为借助Ajax来让更多人认识到自己的...而觉得...
#coding=utf-8from django import formsfrom django.core .urlresolvers import reversefrom django.http import HttpResponse, HttpResponseRedirectfrom django.shortcuts import render_to_responsefrom django.template import RequestContextfrom django.contrib.auth.models import Userfrom ...
标签:Django
几个月前,尝试Django结合Jquery的jquery imgareaselect插件,对头像进行剪切。用的场合很特别,虽然用处不是很大,但有些朋友却要求提供此类应用的源码。想想,之前写的《Django&JQuery手动剪切个性头像》主要是原理性的东西,看着很抽象,片段的代码,难免造成困惑,所以想:何不把龅牙驴的头像剪...
在博客中使用富文本编辑器是很常见的,今天尝试在Django中使用比较知名的CKEditor。前提条件是通过静态文件的正确配置,可以参考之前写的《Django静态文件的配置》,今天不再累赘。 一 前提条件:1. 找到第三方支持插件:django-ckeditor相关开源项目地址:https://github.com/dwaiter/django-ckedi...
一直在寻找产品部署环境和开发环境时,Django静态文件配置的差异化。比如说网站的css js和一些非程序相关的文件,我暂时看成是静态文件。我们怎么正确配置,才能让Django网站解析到静态文件呢?简明来说,要注意两个文件:settings.py url.py。 首先在settings文件中,引用os模块:import os 然后...
标签:Django
上回讲解了《Django 过滤Html指定标签》,过滤的的办法使用了Django的内置的fliter removetags函数,这个有它适合的使用场合;但如果想过滤由Web编辑器产生的HTML标签,用它就显得过于臃肿,效率有点低了。因为你要找出全部的html标签,作为参数传进函数,这么一来可能几十个html标签作为参数一起传...
在Django几个级别缓存中,本人更偏向于页面级别的缓存,原因很赤裸:页面级别缓存@cache_page让人感到速度更更明显,一类页面没有加上缓存,可能呈现时间让人感觉几秒的时间,但加上@cache_page,速度肯定让你吃惊,几秒钟降低到眨眼的毫秒的级别上;使用方式非常简单,这好像不是什么理由,因为Dja...
标签:Django
开发过程中,发现新版的Django的细节变化,注意版本是Django 1.2.1。现在列出新的东西,纯粹个人理解,有纰漏的,希望看到的提出来,纠正。 多个数据的支持新版的Django 1.2.1,正式加入同时多个数据库的支持。也是变化的亮点;这种变化有很多隐含的用法(虽然首次加入这样的功能,还有待完善,但以D...