小编Vik*_*tor的帖子

使用subprocess.Popen调用python脚本并刷新数据

好的,所以我已经看到了十几个这样的线程,但是没有一个给出了完整的答案,我到目前为止所做的一切都不适合我.

1)不断输出一些数据并刷新它的脚本:

import time
import sys

if __name__ == '__main__':
    for i in range(5):
        print i,
        sys.stdout.flush()
        time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

2)用Popen调用第一个脚本的脚本,应该逐个打印数字但由于某种原因没有,并且一次打印它们:

import sys
import subprocess

if __name__ == '__main__':
    process = subprocess.Popen(['python', 'flush.py'], stdout = subprocess.PIPE )
    for line in iter(process.stdout.readline, ''):
        print line,
        sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)

我有点困惑的第一件事就是在第一个脚本中,如果你删除了flush它会在一行中返回输出O_O ...我很确定这是因为time.sleep但仍然有点预期它会像一个标准输出不断返回值0,1,2,3,4但不是全部在一起,当然冲洗解决它,但只是奇怪,至少对我来说......

主要问题: 第二个脚本是不是一个一个地返回数字,而是一次性返回一个输出.....我需要的是看到数字逐个弹出...

我读到某个地方,它没有返回EOF,Popen等待关闭管道,这就是为什么它运行到最后......

那我该怎么办或接下来尝试一下呢? 提前致谢.

python subprocess pipe

11
推荐指数
1
解决办法
1万
查看次数

为什么字典值不在插入的顺序中?

当我声明一个列表1,2,3,4并且我对它做了一些事情,即使只是打印我也会得到相同的序列1,2,3,4.

但是当我对字典做任何事情的时候,它们总是会改变数字序列,就好像它是以一种我无法理解的扭曲方式排序.

test1 = [4,1,2,3,6,5]
print test1
test2 = {"c":3,"a":1,"b":2,"d":4}
print test2 

[4, 1, 2, 3, 6, 5]
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
Run Code Online (Sandbox Code Playgroud)

世界上的'a'如何成为第一个元素和'c',即使按字母顺序对字典进行排序,它应该是1,2,3,4或a,b,c,d不是1,3,2, 4.wT?F @!$!@ $#@!

那么我如何打印,从字典中获取值而不改变元素的位置.

python dictionary sequence

10
推荐指数
1
解决办法
3678
查看次数

/'utf8'编解码器处的UnicodeDecodeError无法解码字节

这是一个django项目.

我有一个简单的视图,其中包含1行:render_to_response('index.html').此index.html包含"öüä"等字符,可触发错误 'utf8' codec can't decode bytes in position 1942-1944: invalid data.

这是一个简单的错误,它说它无法解码,因为这不是utf8,但我无法理解如何解决它.我应该在哪里指定一些东西.

有什么建议 ?

django decode utf-8

7
推荐指数
1
解决办法
7268
查看次数

你如何在Django中测试formset?

好的,所以我需要对视图进行单元测试,在视图中更精确的形式.所以我创建了这样一个单元测试.

class ViewTest(TestCase):
    fixtures = ['fixture.json']
    def setUp(self):
        self.client = Client()
    def test_company_create(self):
        post_data = {
            'form-0-user': '',
            'form-0-share': '',
            'form-TOTAL_FORMS': 1,
            'form-INITIAL_FORMS': 0,
            'form-MAX_NUM_FORMS': 10
        }
    resp = self.client.post('/company/create/', post_data)
    self.assertFormError (resp, 'shareholder_formset', 'share', 'This field is required.')
    self.assertFormError (resp, 'shareholder_formset', 'user', 'This field is required.')
Run Code Online (Sandbox Code Playgroud)

当然我得到了一个错误

AttributeError:'ShareholderFormFormSet'对象没有属性'fields'

因为formset中有表单,而不是字段.....那么测试formset的正确方法是什么?

django unit-testing formset

6
推荐指数
1
解决办法
2174
查看次数

nginx中的零大小共享内存区域"proxied"

我用nginx-extras安装了nginx来获取(Http Upload Progress Module).

然后我尝试按照此文档使用它(示例在页面底部) - > http://wiki.nginx.org/HttpUploadProgressModule.track_uploads proxied 30s;在我的配置中插入这一行()后,我得到以下错误

nginx:[emerg]零大小共享内存区域"proxied"

在互联网上的某个地方我发现,有人建议插入upload_progress proxied 10m;到nginx.conf中,插入后我开始发现以下错误:

nginx:[emerg]共享内存区域"代理"的大小10485760与/etc/nginx/nginx.conf:75中已声明的大小0冲突

这是配置的一部分,在这里插入这一行......

 location ~ \.php$ {
  include /etc/nginx/fastcgi_params;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_param SCRIPT_FILENAME /home/cha0s/learnphp$fastcgi_script_name;
  fastcgi_param PATH_INFO $fastcgi_script_name;

  track_uploads proxied 1m;
}
Run Code Online (Sandbox Code Playgroud)

所以问题是,我应该在nginx.conf中写什么来解决这个错误?提前致谢.

nginx

2
推荐指数
1
解决办法
9740
查看次数

Ajax POST不起作用/扭曲

Twisted.Web和AJAX 类似的线程已经退出.我甚至从那里拿了代码,但我有同样的问题,扭曲的服务器就像一个魅力,但无法弄清楚为什么我不能用ajax获取它.在类似的帖子中,他说警报出来了,但没有数据.对我来说,即使警报没有弹出,但是另一个ajax函数可以正常工作,所以一般来说ajax就是一切都好,但正是在取出错误的时候.

正如在类似的线程中所说,我可以用curl来获取它 - $ curl --url http://localhost:8082/test -v它显示了hello world,因此服务器可以正常工作100%.

有任何想法吗 ?

<script type="text/javascript">
// Submit button
$(function(){
  $.ajax({type: "POST", 
     $('a').click(function(){
        url: "http://localhost:8082/test",
        data: {},
        success: function(data) {alert("Success:" + data);}
    });
  });
});
</script>

<html>
[...]
  <a href="#">Load Favorites Movies</a>...
[...]
</html>
Run Code Online (Sandbox Code Playgroud)

server.py

from twisted.web import server, resource, http

class RootResource(resource.Resource):
    def __init__(self):
        resource.Resource.__init__(self)
        self.putChild('test', TestHandler())

class TestHandler(resource.Resource):
    isLeaf = True

    def __init__(self):
        resource.Resource.__init__(self)
    def render_GET(self, request):
        return self.render_POST(request)
    def render_POST(self, request):
        return "hello world!"

if __name__ == "__main__": …
Run Code Online (Sandbox Code Playgroud)

javascript ajax twisted

1
推荐指数
1
解决办法
1053
查看次数