摘要: 只要需求没有冻结,数据库基本上也不可能冻结。Django虽然提供模型向数据库的同步机制,但因为其只是一次性同步,当模型有所变化时其内置的同步功能就无能为力了。还好有很多开源的工具可以弥补Django在这方面的不足。south(http://south.aeracode.org/)就是其中之一。其简要的使用方法如下:按照标准的Python包的方式安装好之后,在Django配置文件(settings.py)中将south添加到INSTALLED_APPS中,并执行manager.py syncdb完成south所需数据表的安装。使用manage.py schemamigration <app 阅读全文
posted @ 2012-09-12 14:46 雨吁的嘘 阅读(312) 评论(0) 推荐(0)
摘要: Django是一个动态内容开发框架。其主要擅长的网站动态内容部分,然而一个网站必然要包含css、js等静态内容,这些内容的管理当然就不是Django所擅长的。在真是系统中,我们一般会被这些资源交给更擅长此道的Web Server或其他专用服务器。然而在开发过程中,毕竟Django连开发服务器都已经准备好了,只需简单的运行manager.py runserver即可,如果还要配置一个Web Server来配合的话,显得就太不专业了。对此Django提供的方案是,在开发期间由Django托管(由django.views.static.serve视图负责)。每个app都有可能有自己的静态文件,按照高 阅读全文
posted @ 2012-09-12 14:31 雨吁的嘘 阅读(393) 评论(1) 推荐(0)
摘要: Django默认提供了很好的跨域攻击保护(csrf)机制,采用常规的方法,我们几乎感觉不到这个机制的存在(好吧,还是需要在form中添加{% csrf_token %})。但是当我们期望能够以Ajax的方式向服务器提交表单的时候,问题就来了。常规的HTTP GET方法被认为是安全的,不会做csrf检查,而POST、PUT、DELETE等方法被认为是有潜在危险的。因为我们没有按照Django的要求在请求头/内容域中包含X-CSRFToken及相应的正确的值。Django会直接返回一个Http 403的错误回来。解决的办法其实也很简单,就是按照要求提供这个值即可。在Django文档中有非常详细的描 阅读全文
posted @ 2012-09-12 14:03 雨吁的嘘 阅读(1444) 评论(0) 推荐(0)