在Python 2.6中,defaultdict是否已成为不可编组的?以下在2.5下工作,在OS X 1.5.6上的"ValueError:unmarshallable object",python.org的python-2.6.1-macosx2008-12-06.dmg下失败了2.6:
from collections import defaultdict
import marshal
dd = defaultdict(list)
marshal.dump(dd, file('/tmp/junk.bin','wb') )
Run Code Online (Sandbox Code Playgroud) 我有一个web.py服务器响应各种用户请求.其中一个请求涉及下载和分析一系列网页.
有没有一种简单的方法在web.py中设置基于异步/回调的url下载机制?资源使用率低是特别重要的,因为每个用户发起的请求可能导致下载多个页面.
流程看起来像:
用户请求 - > web.py - >并行或异步下载10页 - >分析内容,返回结果
我认识到Twisted是一个很好的方法,但我已经在web.py中了,所以我对web.py中的内容特别感兴趣.
我看到IE useragent字符串有多个部分报告为不同版本的情况.例如:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;
{B93AEBFF-7B72-44EA-B006-8CB078CC1911};
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;
.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152;
.NET CLR 3.5.30729)
Run Code Online (Sandbox Code Playgroud)
所以这声称是MSIE 8.0,但也是MSIE 6.0.这是否意味着什么特别的?它是IE的股票还是有什么特别之处?
我问,因为我看到报告多个版本的浏览器出现了奇怪的行为,而不是另一个声称单个版本的IE8.0:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1;
Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729;
.NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
Run Code Online (Sandbox Code Playgroud)
不确定使用者是否与它有任何关系,但我想我会问.
[更新]请注意,我不是针对特定浏览器版本进行编码,我只是注意到这是一个行为奇怪的浏览器和那些没有的浏览器之间的区别.我想知道是什么会导致一些IE8.0报告他们也是IE6.0其他人没有.
将同步http请求/响应模型与基于异步队列的模型连接起来的好方法是什么?
当用户的HTTP请求到来时,它会生成一个进入队列的工作请求(在本例中为beanstalkd).其中一名工人接受请求,完成工作并准备回复.
队列模型不是请求/响应 - 只有请求,而不是响应.所以问题是,我们如何才能最好地将响应反馈回HTTP世界并返回给用户?
思路:
Beanstalkd支持轻量级主题或队列(他们称之为管).我们可以为每个请求创建一个管,让工作人员在该管上创建一条消息,让http进程坐下并等待管的响应.不要特别喜欢这个,因为它有apache进程坐着记忆.
让http客户端轮询响应.用户的初始HTTP请求将启动队列上的作业并立即返回.客户端(用户的浏览器)定期轮询响应.在后端,工作人员将其响应放入memcached,我们将nginx连接到memcached,因此轮询很轻.
使用Comet.类似于第二个选项,但与更高级的http通信,以避免轮询.
我倾向于2,因为它很容易且很清楚(我还没有用过彗星).我猜我可能还有一个更好的模型,我没有想过.你怎么看?
我看到一个错误,我无法从一小部分用户复制.这是代码:
var selected = $('#mytable input:checked');
if (selected.length == 0) {
$('body').trigger('notice', 'Please select some items first');
return;
}
Run Code Online (Sandbox Code Playgroud)
即使用户检查了几个复选框,也会触发"通知".似乎selected.length是不应该的时候为零.
[更新]选择器在更新为时工作:
var selected = $('input[class="selection"]:checked');
Run Code Online (Sandbox Code Playgroud)
它似乎包括选择器中的id打破了东西,只在IE上.
此代码适用于绝大多数用户,我们无法复制该问题,但对于看到问题的用户来说,每次都是一致的.
它似乎被隔离到IE(虽然我不能确定).我们正在使用jQuery 1.3.2(来自谷歌CDN).
有任何想法吗?
select_related是否适用于GenericRelation关系,还是有合理的替代方案?目前Django正在为我的查询集中的每个项目执行单独的sql调用,并且我想避免使用像select_related这样的东西.
class Claim(models.Model):
proof = generic.GenericRelation(Proof)
class Proof(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
Run Code Online (Sandbox Code Playgroud)
我正在选择一堆声明,我希望将相关的Proofs拉入而不是单独查询.
假设您要安排重复性任务,例如:
并且您希望在Web应用程序中为合理数量的用户执行此操作 - 即.每个用户可以决定他们想要安排的时间.
并且您希望确保计划的项目运行,即使它们最初是错过的 - 例如.由于某种原因,电子邮件没有在星期三上午10点发送,它应该在下一个检查间隔发出,比如周三上午11点.
你会如何设计?
如果你每隔x分钟使用cron触发你的调度应用程序,那么实现决定每个时间点应运行的部分的好方法是什么?
我见过的类似cron的实现将当前时间与所有指定项目的触发时间进行比较,但我也想处理错过的项目.
我觉得有一个比我正在烹饪的设计更聪明的设计,所以请赐教.
我正在寻找具有拖放功能的跨浏览器html文件上传器.理想情况下,放置目标区域可能很大并且与其他元素重叠(即,我希望允许用户将项目放在HTML UI的现有部分上,而不是需要单独的目标区域).
跨浏览器支持(包括IE6)和可靠性一样重要.我正在使用jQuery,但我愿意接受不使用jQuery的优秀解决方案.
有什么建议?
我正在使用PyGame来显示图像(照片).对于较大的图像尺寸,加载和转换过程较慢(例如,对于尺寸为6000x4485的图像,需要2-3秒).实际代码很慢:
image = pg.image.load(fname).convert()
Run Code Online (Sandbox Code Playgroud)
是否有替代的库或方法可以提供更好的性能?我的目标平台是windows7和os x,我可以为每个平台提供单独的解决方案(尽管单个解决方案会更好).
有没有办法将应用程序级用户名或id(在本例中为django用户名或id)注入Apache或ngnix日志?请注意,我不是在询问HTTP auth用户名.
python ×4
django ×2
jquery ×2
apache ×1
asynchronous ×1
beanstalkd ×1
comet ×1
cron ×1
django-orm ×1
file-upload ×1
html5 ×1
http ×1
image ×1
javascript ×1
logging ×1
nginx ×1
pygame ×1
queue ×1
scheduling ×1