文章分类 - Django
摘要:一、 处理过程的核心概念如下图所示django的总览图,整体上把握以下django的组成:核心在于中间件middleware,django所有的请求、返回都由中间件来完成。中间件,就是处理HTTP的request和response的,类似插件,比如有Request中间件、view中间件、response中间件、exception中间件等,Middleware都需要在 “project/settings.py” 中 MIDDLEWARE_CLASSES 的定义。大致的程序流程图如下所示:首先,Middleware都需要在 “project/settings.py” 中 MIDDLEWARE_CL
阅读全文
摘要:出处在论坛加了个类似微博的@功能,在回复帖子的时候可以@系统中的用户,被@的用户可以收到自己被@的通知可以做出相应的处理。关于model 1 #-*- coding:utf-8 -*- 2 from django.db import models 3 from django.contrib.auth.models import User 4 import datetime 5 from geek.geekchallenge.models import * 6 from django.db.models.signals import post_save 7 from django.dispatc
阅读全文
摘要:comments库是django框架内置的一个评论库,见官方文档,可以快捷的搭建出网站需要的评论系统。不过对这个库的评价似乎褒贬不一,我自己在使用中的感受是要想让这个库能够比较完美的工作,可能自己需要做较多的定制工作,有时想想,还真不如自己重头写来的爽气。这里照例把自己的一些使用经验记录一下,以供参考。一、激活步骤添加APP:INSTALLED_APPS=(‘django.contrib.comments’,)更新数据库。执行命令:python manage.py syncdb添加url。在urls.py中添加:(r’^comments/’, include(‘django.contrib.c
阅读全文
摘要:来源:中文版英文版django已经内置了用户认证的一整套处理,但总不可能满足所有用户的要求,因此在许多情况下我们需要对User进行扩展。这里有一篇不错的Blog,讲得比较详细。这篇Blog是使用django提供的userprofile扩展机制,要点如下:在settings.py中设置要使用的UserProfile Model 信息,如:AUTH_PROFILE_MODULE = ‘myapp.UserProfile’注意,后面的字符串只能有两项,第一个是app的名字,第二个是Model的名字,其它的情况会报错。UserProfile表与User之间建议使用ForeignKey,并且key为不重
阅读全文
摘要:1、当多个models拥有共同的信息时,你可以建一个父类并且添加classMeta: abstract=True这个父类就不会在数据库中产生数据表2、在启动时加入参数--noreload3、在django中 调用 save()保存数据,出现如下错误Exception Type: IntegrityError折腾了半天,后来发现是 同一model类里出现两个 primary_key,去掉后保存正常。或加入default=0在查资料的过程中发现这个错误基本上都是model类里有不允许重复的内容引起的。如唯一字段出现重复。出现 Duplicate entry '2' for key
阅读全文
摘要:grappelli 是用来优化Django Admin界面的工具包下载:pip install django-grappelli 或easy_installdjango-grappelli。设置:settings.py1.设置INSTALLED_APPSgrappelli 一定要在 'django.contrib.admin'之前INSTALLED_APPS = ( 'grappelli', 'django.contrib.admin',)2.设置urlurlpatterns = patterns('', (r'^grap
阅读全文
摘要:需求条件:Apache2.2 mod_wsgi.so 由于mod_python 已停止更新,所以我们选择mod_wsgi.so,据说性能相比mod_python,有过之而不及。环境:windows下载mod_wsgi.so http://code.google.com/p/modwsgi/wiki/DownloadTheSoftware?tm=2本工程放在C 盘根目录下。首先把mod_wsgi.so拷贝到 apache目录下的 modules 下,然后更改配置文件httpd,(路径C:\Program Files\Apache Software Foundation\Apache2.2\con
阅读全文
摘要:1 from django.db import connection2 3 query="INSERT INTO foo VALUES (%s)"4 cursor=connection.cursor()5 cursor.execute(query,["bar"])6 #cursor.execute(query,("bar",))上面两种执行sql语句的格式都是正确的,注意两个的区别row = cursor.fetchone()获取一条记录,返回的tuple为单独一行结果集,对其迭代相当于在遍历一行中的各列一般只在处理确定只有一行数据的
阅读全文
摘要:必备知识:https://docs.djangoproject.com/en/dev/ref/files/storage/#django.core.files.storage.FileSystemStorage https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponse http://www.python.org/doc//current/library/mimetypes.html 关于mimetypesmimetypes模块根据文件扩展名在一个文件名或URL和M...
阅读全文
摘要:MEDIA_ROOT主要是用于用户上传目录。 STATIC_ROOT用于网站的静态文件【转载】Django提供了一个方法自动地将所有的静态文件放在一起。只要在写App的时候创建一个static子目录专门保存静态文件就行了。在开发阶段,不必费心去做映射,不需要配置urls.py。在布署到生产环境的时候,只需要配置Apache把/static/映射到STATIC_ROOT。然后运行manage.py collectstatic,自动地STATICFILES_DIRS列出的目录以及各个App下的static子目录的所有文件复制到STATIC_ROOT。因为复制过程可能会覆盖掉原来的文件,所以,一定不
阅读全文