Quantcast
Channel: django | 李劼杰的博客
Browsing all 8 articles
Browse latest View live

多个列表在django模板中的并行迭代

自己接触django时间不长,刚遇到一点小问题,就是在django模板中如何并行迭代多个列表。 一开始我想到或许可以传入多个列表,然后在模板中使用forloop.counter变量的值去访问另一个列表的元素。 比如当我迭代list1和list2的时候,使用类似下面的代码: {% for item in list1 %} access list2 item via {{...

View Article


Image may be NSFW.
Clik here to view.

在django1.5中使用django debug toolbar分析SQL性能

为了分析WEB页面中SQL执行的性能,我试着用了一下django debug toolbar,感觉很方便。 简述一下在django 1.5中安装和使用的步骤: 1.  下载解压后,直接setup.py install 2. 完成之后到project文件夹下编辑settings.py文件: 增加一个额外的变量:  DATABASE_ENGINE=’mysql’...

View Article

Django i18n国际化在windows测试环境中需要注意的问题

这两天准备把前面写的网站 春天音乐 做一下国际化 (补充:翻译量小,半天就完成了,不过教训是一开始应该预留翻译函数接口。在模板中找字符串浪费了很多时间), 以曾经的经验,这样的资源站,超过一半的访客都是通过google进入的,国外用户数高于内地访客。 在windows开发环境中测试i18n可能会遇到一些问题,此处简单罗列: 1. 在windows下安装gnu gettext...

View Article

Django i18n多语言的URL差异化解决方案

昨天我已经对站点“春天音乐”进行了国际化,添加了英文翻译。 但当时后端是根据session和cookie记录用户的语言设定, 这造成的问题是,同一URL,存在一个中文版、一个英文版。 搜索引擎的爬虫进入后,大多只能抓取并保存对应的中文版(默认语言),而遗失了对应的英文版。 因此,必须对中文版和英文版进行URL差异化。有两种选择: 1. 增加一个参数,类似...

View Article

Image may be NSFW.
Clik here to view.

django makemessages时出现DjangoUnicodeDecodeError

今天对www.fachun.net做了些改动,需要增加一点翻译。 当我执行django-admin.py makemessages -l en时,遇到了DjangoUnicodeDecodeError, DjangoUnicodeDecodeError: ‘utf8’ codec can’t decode byte 0xcd in position 12: in valid continuation...

View Article


Django中实现一个简单的数据防爬取系统

www.fachun.net是我做的一个音乐资源站,因为资源丰富,容易成为他人抓取的目标。 被抓取资源事小,另一方面,爬虫的频繁访问还会严重占用服务器资源。 前期写代码的时候,我已经考虑到防爬问题,做了一些简单的事,比如避免使用数字ID,而是ID + 名字。 例如一个歌手的名字是ABC,ID是36,最终的URL就是: http://www.fachun.net/musician/36-ABC/...

View Article

Image may be NSFW.
Clik here to view.

测试前面写的Django数据防爬程序

写一小段测试代码来测试前面写的数据防爬程序,不停访问某个页面: 实际上REMOTE_HOST是服务器根据自己DNS解析得到的,但我这里测试它能否直接在header中伪装: import httplib import sys import datetime import random headers = {'User-Agent': 'Googlebot/2.1...

View Article

Image may be NSFW.
Clik here to view.

Django bulk_update可能卡死问题

在一个多年前的历史项目中,我们发现,django cron job出现了卡死现象。 应用逻辑没有被完整执行直到结束,程序已经僵死了。 调试分析卡死的Python进程,请参考: https://wiki.python.org/moin/DebuggingWithGdb 通过调试进程,我们发现应用卡死在了 Domain.objects.bulk_update(update_domain_list,...

View Article

Browsing all 8 articles
Browse latest View live