django模板中取QuerySet第一个元素
问题:
如何在模板中取到data_list(是一个QuerySet)的第一个元素的name属性值(即data_list[0].name)?
解决方法:
在模板中不支持'[]'方式取属性值 ,但可用'.'方式取属性值,即 {{data_list.0.name}}
搜集自QQ群:69930365
nginx+uwsgi配置下,504响应解决办法
当服务器程序要处理的文件多或大的时候,可能需要等待时间比较长,如果nginx使用默认的配置,一般是60秒就会出现timeout 504,如果系统在60秒没有返回结果时,就被timeout 504,会影响到系统的使用。
这里简单介绍如何修改nginx.conf配置文件,防止timeout 504:
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 256k; #以下四个参数已加大,如果设置太小也会出现timeout 504
fastcgi_buffers 16 256k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;
server {
listen 80;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9001;
access_log /data/logs/uwsgi_access.log;
uwsgi_read_timeout 1800;
uwsgi_send_timeout 300;
proxy_read_timeout 300;
}
location ^~ /static {
root /var/www/seotool;
expires 24h;
access_log off;
}
}
转自:http://www.linuxyw.com/470.html
bulk_create异常(IntegrityError)处理
使用 django表对象.objects.bulk_create可进行批量数据插入。
问题:如果某一条数据存在IntegrityError异常,将导致整个批量插入的失败。
解决方法
建立一张完全一样的临时表,先将要插入数据先批量插入到临时表(用bulk_create),再用SQL从临时表中插入目标表不存在的记录到目标表,SQL如下(可将其存储为MYSQL过程):
INSERT INTO wordbank_classify (name,genre,createdate)
SELECT name,genre,createdate FROM wordbank_classifytmp WHERE NOT EXISTS (
SELECT 1 FROM wordbank_classify WHERE wordbank_classifytmp.`name`=wordbank_classify.`name`
)