小编kra*_*r65的帖子

NodeJs 错误:连接 ETIMEDOUT

我运行node myserver.js包含以下代码的代码,40-50 秒后出现错误(代码下方)。为什么我在没有发生任何事情的情况下会收到错误消息?

var options = {
    host: 'google.com',
    port: '80',
    path: '/',
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': 'post_data.length'
    }
 };

 var subscribeRequest = require('http').request(options, function(res) {
    console.log('send request');
 }).on('error', function(err){console.log(err.stack)});
Run Code Online (Sandbox Code Playgroud)

40-50秒后我收到此错误:

Error: connect ETIMEDOUT
    at errnoException (net.js:904:11)
    at Object.afterConnect [as oncomplete] (net.js:895:19)
Run Code Online (Sandbox Code Playgroud)

http node.js

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

Flask jsonify返回奇怪的数组?

我正在尝试使用Flask创建一个简单的API.我现在想要返回一个dicts列表如下:

print results  # prints out [{'date': '2014-09-25 19:00:00', 'title': u'Some Title'}]
response = make_response(jsonify(results))
response.headers['Content-Type'] = 'application/json'
return response
Run Code Online (Sandbox Code Playgroud)

但是当我在浏览器中访问网址时,我得到以下信息:

{
  "date": "title"
}
Run Code Online (Sandbox Code Playgroud)

有谁知道我在这里做错了什么?欢迎所有提示!

python json flask

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

如何在 Python WTForms 库中使用 Bootstrap 工具提示?

我正在使用(很棒的)Flask 框架WTForms 插件构建一个网站。我现在想在输入字段的焦点上使用显示Bootstrap 工具提示在此处工作),但为此我必须为输入标签提供data-toggleandtitle属性,如下所示:

<input data-toggle="tooltip" title="tooltip on focus!" type="text" placeholder="Focus me!" name="thename"/>
Run Code Online (Sandbox Code Playgroud)

所以我只是将它们添加到表达式中:

{{ form.plotting_value(title='tooltip on focus!', data-toggle='tooltip', class='form-control') }}
Run Code Online (Sandbox Code Playgroud)

title属性是没有问题的,但data-toggle导致

TemplateSyntaxError:函数调用表达式的语法无效

有谁知道我如何data-toggle使用 WTForms添加到输入字段?

python jinja2 flask wtforms twitter-bootstrap

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

如何捕获 Bootstrap 导航栏下拉事件?

我的菜单使用基本的 Twitter Bootstrap 导航栏,现在我想在受 Stackoverflow 系统启发的下拉菜单中显示通知。为了实现这一点,我想在单击下拉菜单时调用 api,为此我需要“捕获”下拉事件。根据文档,我需要像这样捕获事件:

\n\n
$(\'#myDropdown\').on(\'show.bs.dropdown\', function () {\n  // do something\xe2\x80\xa6\n})\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以我在这里有一个工作小提琴,但是当我在自己的 html 中使用完全相同的代码(见下文)时,它不再工作了。有谁知道下面的代码有什么问题:

\n\n
<!DOCTYPE html>\n<html lang="en">\n<head>    \n    <meta charset="utf-8">\n    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">\n\n    <!-- jQuery -->\n    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>\n\n    <!-- Bootstrap -->\n    <link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">\n    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>\n\n    <script type="text/javascript">\n        $(\'#jajaja\').on(\'show.bs.dropdown\', function () {\n            alert(\'Come on lets show the dropdown!!\');\n        });\n    </script>\n</head>\n<body>\n<div class="container">\n    <div class="row">\n        <div class="navbar navbar-default" role="navigation">\n            <div class="container-fluid">\n                <div class="navbar-header">\n                    <a class="navbar-brand" href="/">My Website</a>\n                </div>\n                <div id="navbar" …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery events twitter-bootstrap

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

为什么在PIL中读取图像(低)会破坏Flask图像的终点?

我正在使用Python Flask框架来构建一个网站.由于我在MongoDB中存储上传的图像,我构建了一个简单的端点来通过id提供图像:

@app.route('/doc/<docId>')
def getDoc(docId):
    userDoc = UserDocument.objects(id=docId).first()
    if not userDoc:
        return abort(404)

    return Response(userDoc.file_.read(), mimetype=userDoc.file_.content_type)
Run Code Online (Sandbox Code Playgroud)

这非常有效.但由于图像通常非常大,我现在希望能够提供原始图像的缩略图.所以使用Pillow我想调整图像的大小,存储/缓存它们/tmp并在需要时提供它们.所以我从这开始:

@app.route('/doc/<docId>')
def getDoc(docId):
    userDoc = UserDocument.objects(id=docId).first()
    if not userDoc:
        return abort(404)

    desiredWidthStr = request.args.get('width')
    desiredHeightStr = request.args.get('height')
    if desiredWidthStr or desiredHeightStr:    
        print 'THUMBNAIL'
        # Load the image in Pillow
        im = Image.open(userDoc.file_)  # <=== THE PROBLEM!!!
        # TODO: resize and save the image in /tmp

    print 'NORMAL'
    return Response(userDoc.file_.read(), mimetype=userDoc.file_.content_type)
Run Code Online (Sandbox Code Playgroud)

当我现在注释掉有问题的行并打开首页(加载几张图片)时,所有图像加载都很好,我看到了(正如预期的那样):

THUMBNAIL
NORMAL
THUMBNAIL
NORMAL
THUMBNAIL
NORMAL
212.xx.xx.xx …
Run Code Online (Sandbox Code Playgroud)

python image python-imaging-library flask pillow

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

如何在html表单中处理相同类型的多个输入?

假设我有一个表格可以描述一个家庭:

<input type="text" name="mother">
<input type="text" name="father">
<input type="text" name="child">
Run Code Online (Sandbox Code Playgroud)

但是我希望人们能够在表单中添加无数个孩子.所以我可以使用Javascript继续为更多的孩子添加新的输入,但我想知道我应该如何命名这些.我简单地做child1,child2,child3等?在后端我简单地循环所有的孩子?

如果所有孩子都需要一个"年龄"输入字段怎么办?难道我只是继续添加字段,如child1_age,child2_age,child3_age

我想这会起作用,但我觉得有一个更明智的方法.有谁知道更好的方法来解决这个问题?欢迎所有提示!

html javascript forms jquery

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

如何从websocket端点外部发出websocket消息?

我正在使用Flask构建一个网站,其中我也使用Flask-socketIO使用Websockets ,但有一点我不明白.

我建立了一个聊天功能.当一个用户发送消息时,我使用websockets将该消息发送到服务器,之后我从同一个调用中向另一个用户发送消息:

@socketio.on('newPM', namespace='/test')
@login_required_with_global
def io_newMessage(theJson):
    emit('message', {'message': theJson['message']}, room=str(theJson['toUserId']))
Run Code Online (Sandbox Code Playgroud)

但是,假设我想在保存文件时向用户发出消息.这意味着我需要从文件POST的视图中发出消息.所以根据flask_socketio文档,我可以在emit中添加一个名称空间.所以我写了这个:

@app.route('/doc', methods=['POST'])
@login_required
def postDoc():
    saveDocument(request.files['file'], g.user.id)
    emit('my response', {'data': 'A NEW FILE WAS POSTED'}, room=current_user.id, namespace='/test')
    return jsonify({'id': str(doc.id)})
Run Code Online (Sandbox Code Playgroud)

但是看到下面的堆栈跟踪仍然存在命名空间的问题; werkzeug有一个AttributeError: 'Request' object has no attribute 'namespace'.

有谁知道我在这里做错了什么?或者这是flask_socketio中的错误?欢迎所有提示!

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
    response …
Run Code Online (Sandbox Code Playgroud)

python websocket flask socket.io flask-socketio

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

如何用python-qrtools/ZBar获取QR /条形码的编码风格?

在我的Ubuntu服务器上,我安装了python-qrtools包(使用zbar),sudo apt-get install python-qrtools用于解码Python中QR码和条形码的图像,如下所示:

>>> qr = qrtools.QR()
>>> qr.decode('the_qrcode_or_barcode_image.jpg')
True
>>> print qr.data
Hello! :)
Run Code Online (Sandbox Code Playgroud)

这完全没问题.

我现在想要存储这些数据并在以后重新生成图像.但问题是我不知道原始图像是QR码还是某种类型的条形码.我检查了qr对象的所有属性,但似乎没有一个给我类型编码样式(QR /条/其他).

这个SO线程中,描述了ZBar确实给出了编码样式的类型,但它只给出了Objective-C中的一个例子,而且我不确定这实际上是否是我正在寻找的答案.

有谁知道如何在Python中找到编码样式的类型(所以QR码/ BAR代码/其他)(最好使用python-qrtools包)?如果不是在Python中,是否有任何Linux命令行工具可以找到它?欢迎所有提示!

python qr-code objective-c zbar

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

如何在Python中创建函数的dict?

我正在用Python编写数据库迁移脚本,我在其中创建了一个可以在版本之间迁移数据库的字典.我目前这样做如下:

def from1To2():
    pass  # migration script here
def from2To1():
    pass  # migration script here
# etc

migrations = {
    1: {'up': from1To2},
    2: {'down': from2To1, 'up': from2To3},
    3: {'down': from3To2, 'up': from3To4},
    4: {'down': from4To3},
}
Run Code Online (Sandbox Code Playgroud)

但是每次创建新的迁移时,我都需要编写两个迁移脚本(上下)并将它们放在迁移字典中.由于迁移功能非常小(通常是两行),我想在迁移字典中直接写它们.在Javascript中,这看起来像:

migrations = {
    1: {
        'up': function(){ addSomeColumn(); recordChange(); }, 
        'down': function(){ dropSomeColumn(); recordChange(); }
    },
    2: etc
}
Run Code Online (Sandbox Code Playgroud)

因为迁移函数通常是两行,所以我认为我不能使用lambda函数.有没有人知道在Python中用dict直接编写函数的其他方法?欢迎所有提示!

python lambda dictionary structure function

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

Peewee ORM 中的 before_save() 和 after_save() 钩子?

我在我的Flask 网站中使用Peewee ORM,我现在想构建一个版本/历史表,以便我可以跟踪对记录的更改。我正在遵循这个 SO answer 中的基本 SQL 结构。

所以要做到这一点,我需要某种方式为字段的 .save() 方法插入触发器,我想我曾经读过某种 before_save 和 after_save 挂钩,但我再也找不到类似的东西了。

那么有人知道我如何连接额外的方法来保存、更新和删除记录,以及在 Peewee ORM 中创建表吗?

欢迎所有提示!

python mysql orm flask peewee

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