我一直在努力学习wxpython,在创建小部件时我看到了这个id:
menubar = wx.MenuBar()
file = wx.Menu()
file.Append(-1, 'Quit', 'Quit application')
menubar.Append(file, '&File')
Run Code Online (Sandbox Code Playgroud)
我已经阅读了一些内容,当它被设置为-1时,会自动生成但是id的实际用途是什么以及它对事件有什么用?
我有一个模型服务和一个名为Service的ModelForm,我用它来添加和更新服务模型.该模型如下所示:
class Service(models.Model):
categories = models.ManyToManyField(Category)
Run Code Online (Sandbox Code Playgroud)
"类别"字段显示为标记,允许多个选择.当我添加新记录时,它运行良好,但是当我更新它时,即使我选择了多个类别,也只会在request.POST ['categories']上显示一个服务.
我尝试转储请求对象,我可以看到类别显示如下:
u'categories': [u'3', u'4', u'2']
Run Code Online (Sandbox Code Playgroud)
我尝试调用request._get_post()并且它只返回1个类别,因此request.POST ['categories']仅返回1.任何知道发生了什么以及如何解决它的人?
我有这个名为dummy的视图,我想从我的服务器流式传输mp3,我想将它流式传输到<audio src="/stream">标签,以便客户端可以立即开始播放文件,而无需等待整个文件.
def dummy(request):
headers = {
'Content-Transfer-Encoding': 'binary',
'Content-Type': 'audio/mpeg',
'Transfer-Encoding': 'chunked',
'Connection': 'keep-alive',
'Cache-Control': 'no-cache'
}
with open('songer.mp3') as handle:
while True:
bytes = handle.read(CHUNK)
if not bytes:
break
return Response(bytes, headers=headers)
Run Code Online (Sandbox Code Playgroud)
但是我ERR_INVALID_CHUNKED_ENCODING从chrome 那里得到了,我也不确定我返回响应的方式是否会起作用,因为它一旦返回就不会结束响应?
如何在kafka上添加延迟作业?据我所知,它并不涉及每个消息,而是每个主题.我的工作有不同的时间表我希望他们被消费.假设一个将在接下来的4个小时内,另一个将是我12月1日等.
kafka是否有本地或其他第三方方式实现相同的支持?
我正在考虑将Redis用于延迟队列,并在其计划到达后将作业推送到kafka,但如果可能的话,我只想使用一个依赖项.
我正在使用Celery和Redis作为代理,我可以看到队列实际上是一个redis列表,其中序列化任务作为项目.
我的问题是,如果我有一个AsyncResult对象作为调用的结果<task>.delay(),有没有办法确定项目在队列中的位置?
更新:
我终于可以使用以下方式获得该职位:
from celery.task.control import inspect
i = inspect()
i.reserved()
Run Code Online (Sandbox Code Playgroud)
但它有点慢,因为它需要与所有工人沟通.
我正在创建一个python脚本,它接受远程文件和n个线程的路径.文件的大小将除以线程数,当每个线程完成时,我希望它们将获取数据附加到本地文件.
如何管理它,以便生成的线程按顺序附加到本地文件的顺序,以便字节不会被扰乱?
如果我要同时下载多个文件怎么办?
我正在学习haskell,我有以下代码:
fib a b =
a : fib b (a + b)
findFibSum =
sum [x | x <- fib 1 2, mod x 2 == 0 && x < 100]
Run Code Online (Sandbox Code Playgroud)
如果我findFibSum没有发生任何事情,它只是坐在那里.不fib应该评估并返回每个项目?我猜这与懒惰评估有关.
如果我先拨打电话take,请findFibSum接受以下列表:
findFibSum $ take 100 $ fib 1 2
Run Code Online (Sandbox Code Playgroud)
它起作用了.如何制作它以便我可以检索并检查每个项目?我可以通过批量使用来逃避,take但我想首先理解这一点.
UPDATE
感谢@amalloy我终于得到了它:
findFibSum xs =
sum [x | x <- takeWhile (<4000000) xs, mod x 2 == 0]
Run Code Online (Sandbox Code Playgroud)
takeWhile 确保它一旦达到> = 4m就停止从fib中检索值.