小编3z3*_*etm的帖子

如何使用瓶子获取请求正文文本?

我正在使用瓶子从bitbucket接收POST webhook.POST的主体包含有关回购中更改内容的信息,等等.我能够做到这一点@post('/myroute'),但是我无法获得实际的POST正文数据文本.

这是一张图片,展示了我正在做什么的结束 http://i.imgur.com/rWc7Hry.png

打印到控制台时request.body产量:

StringIO.StringIO实例位于0x7fa13341c4d0

request.body.dir()产量:

AttributeError:StringIO实例没有属性'dir'

我想知道如何获取请求体的实际文本(或以某种方式检查对象以找到相同的)?

POST请求正文看起来像这样:

http://pastebin.com/SWjLrHig

我也试过了request.json(没运气)

任何建议?

编辑:我最终使用这个:

from bottle import get, post, request, run
import urllib
import json

@post('/bitbucket')
def postToJSON():
    body = request.body.read()
    body = body.replace("+","").replace("payload=","")
    parsedBody = urllib.unquote(body).decode('utf8')
    print parsedBody
    jsonObj = json.loads(parsedBody)
    print jsonObj 
Run Code Online (Sandbox Code Playgroud)

有趣的是,parsedBody看起来不错:

{"repository":{"website":null,"fork":false,"name":"test","scm":"git","owner":"
testName","absolute_url":"/testNameTest/test/","slug":"test","is_private":true},"trunc
ated":false,"commits":[{"node":"04554d6980dd","files":[{"type":"modified","file"
:"stacker.py"}],"raw_author":"TestName<testName@testName.info>","utctimestamp":"
2015-05-2815:30:03+00:00","author":"testName","timestamp":"2015-05-2817:30:03","
raw_node":"04554d6980dd3c5fe4c3712d95b49fcf9b8da4f4","parents":["7f98b4e7532e"],
"branch":"master","message":"foo\n","revision":null,"size":-1}],"canon_url":"htt
ps://bitbucket.org","user":"testName"}
Run Code Online (Sandbox Code Playgroud)

但是jsonObj并不是那么好:

{u'commits': [{u'node': u'7f98b4e7532e', u'files': [{u'type': u'modified', u'fil
e': u'stacker.py'}], u'branch': u'master', u'utctimestamp': u'2015-05-2815:24:50
+00:00', u'author': u'TestName', u'timestamp': u'2015-05-2817:24:50', …
Run Code Online (Sandbox Code Playgroud)

python bottle

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

如何在Python中以隐身模式打开chrome

这在powershell中有效:

Start-Process chrome.exe -ArgumentList @( '-incognito', 'www.foo.com' )
Run Code Online (Sandbox Code Playgroud)

如何通过Python实现这一目标?

python google-chrome python-2.7 python-webbrowser

6
推荐指数
3
解决办法
8297
查看次数

将 CSS .class 作为参数传递给 javascript 函数

这里的目标是 1.gif 的 onclick,所有具有 .panel1 类的内容消失(style.display.none),并且所有具有 .panel2 类的内容都变得可见(style.display.inline)

我是新手......所以我认为这只是“ ”或“”的语法问题

<!DOCTYPE html>

<html>

<head>
    <title>main</title>
    <meta charset="utf-8">

    <style type="text/css">
    .panel1 {display:inline;}
    .panel2 {display:none;}
    </style>

    <script type="text/javascript">
    function panelTransition(panelOut,panelIn)
        {
        document.getElementByClass(panelIn).style.display="inline";
        document.getElementByClass(panelOut).style.display="none";
        }
    </script>
</head>

<body>
<img class="panel1" src=1.gif onclick="panelTransition(panel1,panel2)" />
<img class="panel2" src=2.gif />
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

html javascript css

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

在画布中制作可点击区域以更改图像

请帮我:

  • 在下面的画布中创建可点击的区域,我可以将onmousedown = events分配给.我知道如何用隐形DIV做到这一点,但我认为在画布上有一种更优雅的方式来做我不知道的事情.

  • 当我单击其中一个区域时,想要将图像名称传递给一个函数,以便将显示的图像更改为另一个图像,然后将其更改为onmouseup.

如果你只给我一个区域和一个mousedown/mouseup示例,我可以做其余的...谢谢.

<!DOCTYPE HTML>
<html>
<head>
</head>
<body>

        <canvas id="myCanvas" width="506" height="319" style="border:1px solid #c3c3c3;">
        Your browser does not support the canvas element.
        </canvas>

        <script type="text/javascript">
        var c=document.getElementById("myCanvas");
        var ctx=c.getContext("2d");
        var img=new Image();
        img.onload = function(){
        ctx.drawImage(img,0,0);
        };
        img.src="firstImage.gif";
        </script>

        /////////HERE NEED/////////
                    CREATE CLICKABLE REGION <region>
                    <region>
                    onmousedown=changeCanvasImage(secondImage.gif) //change image on click
                    onmouseup=changeCanvasImage(firstImage.gif)  /change it back when done
        </region>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript html5 canvas html5-canvas

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