Django

让Django的URL对大小写不敏感

Django的URL配置是大小写敏感的,不过有的时候并不希望这样,比如刚才在添加本站的RSS功能的时候,希望/rss/和/RSS/都能读取本站的RssFeed。 解决办法很简单,只要在URL配置中的匹配表达式最前面加上(?i)即可, 例如: url(r'(?i)^rss/$', rss.PostsByAdminFeed(), name='rss') 参考资料: http://stackoverflow.com/a/1515657 »

Django(Python) 中按屏幕显示宽度截取字符串

Django 的模板中默认提供了两个常用的 filter: truncatechars 和 truncatechars_html, 用于在字符串中截取指定数量的字符(详见 Django 文档说明). 如果是纯英文(或其它半角字符)组成的字符串, 使用这两个 filter 不会感觉有什么不对. 但对于中文网站来讲, 就有很大的局限性. 中文是全角字符, 而西方文字多是半角字符, 在大多数字体中, 全角和半角字符的宽度相差很大, 全角字符在屏幕上显示的宽度大概是半角字符的两倍(注意: 只是大概而以), 如果使用 truncatechars 来截取混合有全角和半角字符的字符串时, 那截取结果在屏幕上的显示宽度就很难控制. 而很多情况下, 我们希望的结果就是要截取一定宽度的字符串, 而不是一定的字符个数. 例如本站首页的讨论版新贴和最近回复两块内容中(因网站改版现在的首页已经有所不同), 我就希望... »

Django实现文件上传功能的笔记

给网站增加了上传文件的功能,以便发布内容的时候可以插入图片和附件。翻了一下Django的文档,把Django对文件上传的处理流程做个笔记总结一下。(这里的文件指的是用户上传的文件,和CSS, JS这些静态文件有所不同) 向网站上传文件的流程其实是很简单的,无非就是用户打开一个网页,里面有一个表单,表单里有一个(或多个)文件上传控件,通过上传控件选择了要上传的文件后提交,然后浏览器会向服务器发送POST请求,把要上传的文件和表单的其它内容一起发送给服务器,然后在服务器端进行处理。 用Django做的网站也是这套流程,关键在于服务器对接收到的文件的处理这块上,不同的网站程序有不同的处理方法。Django也有自己的处理流程,我把它总结成两大块:一是预处理(Upload Handlers),二是在View中处理。 这个网站的文件上传功能设计是这样:文件上传这块是独立的,不和文章有固定的联系。如果发... »