小编Duk*_*gal的帖子

Python装饰器? - 有人可以解释一下吗?

道歉这是一个非常广泛的问题.

下面的代码是网络上发现的一些内容.我感兴趣的关键是从@protected开始的行 - 我想知道这是做什么以及它是如何做到的?它似乎是在执行do_upload_ajax函数之前检查有效用户是否已登录.这看起来像是一种非常有效的用户身份验证方式.我不明白这个@函数的机制 - 有人能引导我朝着正确的方向解释如何在现实世界中实现它吗?Python 3请回答.谢谢.

@bottle.route('/ajaxupload', method='POST')
@protected(check_valid_user) 
def do_upload_ajax():
    data = bottle.request.files.get('data')
    if data.file:
        size = 0
Run Code Online (Sandbox Code Playgroud)

python python-3.x

17
推荐指数
5
解决办法
8994
查看次数

试图理解node.js中的生成器/产量 - 什么执行异步函数?

Node.js现在有了生成器.

我的理解是,生成器可用于编写看起来更加线性的代码,并避免回调地狱和厄运风格编码的金字塔.

所以到目前为止,我的理解是在生成器内部,代码执行直到达到"yield"语句.此时暂停执行生成器功能.该yield语句指定一个返回值,该值可以是一个函数.通常,这将是一个阻塞I/O函数 - 通常需要异步执行的函数.

yield的返回函数返回到任何称为生成器的函数.

我的问题是,此时会发生什么?究竟是什么执行了yield返回的阻塞I/O函数?

编写看似线性的生成器/良品代码是正确的,需要有一种特定类型的函数来调用生成器,这是一个循环生成器并执行yield返回的每个异步函数的函数并返回异步功能返回发电机的结果?

我仍然不清楚如何执行yield返回的asynch函数.如果它由调用生成器的函数执行,它是否异步执行?我猜是因为否则会导致阻塞行为.

总结一下我的问题:

  1. 要用生成器编写"线性"异步代码,是否需要有一个遍历生成器的调用函数,执行生成函数作为回调并将回调结果返回给生成器?
  2. 如果问题1的答案是肯定的,那么生成的函数究竟是如何执行的 - 异步?

任何人都可以提供更好的概述/总结整个过程的工作原理吗?

yield generator node.js

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

如何将Python变量设置为'undefined'?

在Python 3中,我有一个以"undefined"开头的全局变量.

然后我把它设置为某种东西.

有没有办法将该变量返回到"未定义"状态?

@martijnpieters

编辑 - 这显示了全局变量如何在未定义的状态下启动.

Python 2.7.5+ (default, Feb 27 2014, 19:37:08) 
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
>>> global x
>>> x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
>>> 
Run Code Online (Sandbox Code Playgroud)

python variables python-3.x

16
推荐指数
3
解决办法
5万
查看次数

是否可以在每个路由的基础上限制Flask POST数据大小?

我知道可以在Flask中设置请求大小的总体限制:

app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
Run Code Online (Sandbox Code Playgroud)

但我想确保一条特定的路由不接受超过一定大小的POST数据.

这可能吗?

python flask python-3.x

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

在Go中迭代多行字符串

在Python中,我可以遍历多行字符串.

x = """\
this is
my multiline
string!"""

for line in x.splitlines():
    print(line)
Run Code Online (Sandbox Code Playgroud)

Can Go也这样吗?

go

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

python Tornado websockets如何每X秒发送一次消息?

我正在尝试拼凑一个允许websockets客户端连接到Tornado服务器的测试,我希望Tornado服务器每隔X秒向所有客户端发送一条消息.

我这样做的原因是因为wbesockets连接被静默地丢弃到某处,我想知道websockets服务器发送的定期"ping"将保持连接.

我担心这是一个相当愚蠢的问题,下面的代码相当混乱.我只是没有把头缠绕在龙卷风和足够的范围以使其工作.

import tornado.httpserver
import tornado.websocket
import tornado.ioloop
import tornado.web
import tornado.gen
import time
from tornado import gen

class WSHandler(tornado.websocket.WebSocketHandler):
    def open(self):
        print 'http://mailapp.crowdwave.com/girlthumb.jpg'
        self.write_message("http://www.example.com/girlthumb.jpg")

    def on_message(self, message):
        print 'Incoming message:', message
        self.write_message("http://www.example.com/girlthumb.jpg")


    def on_close(self):
        print 'Connection was closed...'

@gen.engine
def f():
    yield gen.Task(tornado.ioloop.IOLoop.instance().add_timeout, time.time() + 8)
    self.write_message("http://www.example.com/x.png")
    print 'x'

@gen.engine
def g():
     yield gen.Task(tornado.ioloop.IOLoop.instance().add_timeout, time.time() + 4)
     self.write_message("http://www.example.com/y.jpg")
     print 'y'

application = tornado.web.Application([
    (r'/ws', WSHandler),
    ])

if __name__ == "__main__":
    tornado.ioloop.IOLoop.instance().add_callback(f)
    tornado.ioloop.IOLoop.instance().add_callback(g)
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)

python tornado websocket

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

Python 3.4电子邮件ContentManager - 如何使用?

我可能会因为这个问题太宽泛而受到抨击,但无论如何我会问我还能做什么?挖掘Python源代码肯定会给我足够的"努力"点来保证帮助我?

我正在尝试使用Python 3.4的新电子邮件内容管理器http://docs.python.org/dev/library/email.contentmanager.html#content-manager-instances

我的理解是,这应该允许我阅读电子邮件消息,然后能够以UTF-8的形式访问所有电子邮件头字段和正文,而无需经历从任何奇怪的编码解码回干净的UTF-8的痛苦过程.据我所知,还处理日期标题和电子邮件地址标题的解析.通常,在Python中阅读电子邮件更容易.好东西,非常有趣.

但是我是一名初学程序员 - 目前的文档中没有关于如何从头开始的例子.我需要一个简单的示例,说明如何阅读电子邮件文件并使用新的电子邮件内容管理器,回读标题字段,地址字段和正文/

我已经深入研究了python 3.4源代码并查看了电子邮件内容管理器的测试.我承认自己已经足够混乱,以至于我太困惑了,无法从测试中收集足够多来开始编写我自己的简单例子.

那么,是否有人愿意帮助一个简单的例子来说明如何使用Python 3.4电子邮件内容管理器来读取电子邮件的标题字段和正文和地址字段?

谢谢

email python-3.x

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

redux - 如何存储和更新键/值对

我正在使用redux wth reactjs.

我想存储简单的键/值对,但无法正确获得reducer语法.

在这种情况下,每个键/值对将保持与外部系统的连接.

这是正确的方法吗?我正在开始使用redux,所以它有点神秘.

export default (state = {}, action) => {
  switch(action.type) {
    case 'addConnection':
      return    {
        connections: {
          ...state.connections, {
          action.compositeKey: action.connection
        }
      }

    default:
      return state
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs redux

7
推荐指数
2
解决办法
9419
查看次数

如何阻止ext-js将limit = 25添加到我的JSON查询中?

以下代码正在运行.问题是发送请求时,发送到服务器的每个请求都附加了&_dc = 1299207914646&limit = 25.我无能为力改变极限= 25.理想情况下,我不希望向服务器发送其他参数.我会做的,但能够将限制设置为10000或其他东西.我能够添加其他参数,但我没有删除限制= 25.我也想摆脱&_dc参数,虽然我不知道为什么它被添加它不会导致问题.

有任何想法吗?

注意:下面的代码格式有些奇怪的问题?

谢谢

    Ext.require([
    'Ext.grid.*',
    'Ext.data.*',
    'Ext.panel.*'
]);
Ext.onReady(function(){
    Ext.regModel('Image_', { // window.Image is protected in ie6 !!!
        fields: ['id', 'key', 'value']
    });    

var store = new Ext.data.JsonStore({
        model: 'Image_',
        proxy: {
            type: 'ajax',
var store = new Ext.data.JsonStore({
        model: 'Image_',
        proxy: {
            type: 'ajax',
            autoload: 'false',
            url: '/couchdb/test/_design/blah/_view/by_surname2?startkey=%22r%22&endkey=%22r\u9999%22',
            reader: {
                type: 'json',
               root: 'rows'
                    }
        }
    });
    store.load();




    var listView = new Ext.grid.GridPanel({
        width:425,
        height:250,
        collapsible:true,
        title:'Simple ListView <i>(0 items selected)</i>',
        renderTo: …
Run Code Online (Sandbox Code Playgroud)

javascript extjs

6
推荐指数
2
解决办法
9884
查看次数

如何在 python 中 xss 清理 url

网上有很多关于这个话题的讨论。很多参考资料都说“你必须清理网址”。

甚至 Jeff Atwood 也有针对该主题的答案:Best way to handle security and avoid XSS with user input URLs这个答案必须被忽略,因为有评论指出它是错误的,但没有回应这些评论 - 所以这不是一个重复的问题。

但是,我在任何地方都找不到“具体来说,我如何清理 Python 中的 URL?”这个问题的直接答案,举个例子。

python xss

6
推荐指数
0
解决办法
685
查看次数