小编Jus*_*nas的帖子

Python动态装饰器 - 为什么这么多包裹?

所以我对Python装饰者还是个新手 - 我以前用过它们,但我从来没有自己做过.我正在阅读本教程(特定段落),我似乎不明白为什么我们需要三个级别的功能?为什么我们不能做这样的事情:

def decorator(func, *args, **kwargs):
    return func(*args,**kwargs)
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

python decorator

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

cgi.FieldStorage如何存储文件?

所以我一直在玩原始的WSGI,cgi.FieldStorage和文件上传.我只是无法理解它如何处理文件上传.

起初它似乎只是将整个文件存储在内存中.而且我认为嗯,这应该很容易测试 - 一个大文件应该堵塞内存!..但事实并非如此.但是,当我请求文件时,它是一个字符串,而不是迭代器,文件对象或任何东西.

我已经尝试过阅读cgi模块的源代码并发现了一些关于临时文件的东西,但是它返回了一个怪异的字符串,而不是一个文件(类似的)对象!那么......它是如何运作的?!

这是我用过的代码:

import cgi
from wsgiref.simple_server import make_server

def app(environ,start_response):
    start_response('200 OK',[('Content-Type','text/html')])
    output = """
    <form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="failas" />
    <input type="submit" value="Varom" />
    </form>
    """
    fs = cgi.FieldStorage(fp=environ['wsgi.input'],environ=environ)
    f = fs.getfirst('failas')
    print type(f)
    return output


if __name__ == '__main__' :
    httpd = make_server('',8000,app)
    print 'Serving'
    httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

提前致谢!:)

python cgi wsgi

10
推荐指数
2
解决办法
2万
查看次数

有效的事件循环实现?

可能的重复:
您将如何实现基本的事件循环?

并不是一个特定于语言的问题。什么是事件循环的有效实现?到目前为止,我只遇到过这样的事情:

while (true) {
    handleEvents();
    sleep(100);
}
Run Code Online (Sandbox Code Playgroud)

我认为这不是最好的方法-如果睡眠时间太短,它将消耗大量CPU,如果睡眠时间太长,则该应用将无响应。

那么,有没有更好的方法?

谢谢

events event-loop

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

标签 统计

python ×2

cgi ×1

decorator ×1

event-loop ×1

events ×1

wsgi ×1