小编Dan*_*nov的帖子

无法使用cgi.FieldStorage获取POST值

我试图通过GET向表单数据发送带有表单数据的简单html页面,然后通过POST从表单接收变量.HTML文件看起来像:

<HTML>
<title> My Title</title>
<body>
<form  method="post" action="http.py">
<input name="Name" type="text"/>
<input name="Submit" type="submit" value="Submit" />
</form>
</body>
</HTML>
Run Code Online (Sandbox Code Playgroud)

这是python脚本:

import os
import cgi
import sys
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler



class customHTTPServer(BaseHTTPRequestHandler):
        def do_GET(self):
                self.send_response(200)
                self.send_header('Content-type', 'text/html')
                self.end_headers()
                fh=open('index.html','r')
                self.wfile.write(fh.read())
                return

        def do_POST(self):
            form = cgi.FieldStorage()
            self.send_response(200)
            self.end_headers()
            self.wfile.write(form['Name'].value)


def main():
       try:
            server = HTTPServer(('',9111),customHTTPServer)
            print 'server started at port 8080'
            server.serve_forever()
       except KeyboardInterrupt:
            server.socket.close()

if __name__=='__main__':
       sys.exit(main())
Run Code Online (Sandbox Code Playgroud)

但FieldStorage一直都是空的.我已经尝试检查self.rfile中的内容,并发现如果我尝试执行self.rfile.readlines(),浏览器卡住并看起来像脚本正在等待数据流的结束.我应该从哪里采取我用POST提交的Name变量?

python http

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

python:通过other_module导入some_module

为什么人们这样做

import os
import sys
print sys.version
Run Code Online (Sandbox Code Playgroud)

如果他们能做到的话

import os
print os.sys.version
Run Code Online (Sandbox Code Playgroud)

如果您已经知道相同的模块是由您已经使用的其他模块导入的,为什么要重新导入一些基本模块(随机,系统...很多)?这些调用是否已被弃用以在python编程中使用?

python python-import

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

Python MIT讲座:log(n)示例的复杂性

有麻省理工学院python编程课程的代码,第8讲.

def(x):
    assert type(x) == int and x >= 0
    answer = 0 
    s = str(x)
    for c in s :
        answer += int(c)
    return answer 
Run Code Online (Sandbox Code Playgroud)

正如教授所说,这段代码的复杂性是(x)的对数基数10.他解释说(正如我能够理解的),每次循环迭代,C可以是十位数之一(0-9),这将基数10带到logarythm.

但是我无法理解,为什么会这样呢?原因复杂性实际上取决于列表S的长度,而不是C的选择变化.

有人可以解释一下吗?

python big-o

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

蟒蛇: os.spawn 。无法在后台启动 bash 进程

任务是从 python 脚本执行 bash 脚本并让它在后台执行,即使 python 脚本将完成。我需要 UNIX 解决方案,我不在乎它是否不适用于 Win。

Python脚本:

#!/usr/bin/env python
import os, commands
command = '/usr/bin/ssh localhost "/home/gd/test/python/back.sh  "   '
print os.spawnlp(os.P_NOWAIT,command)
print "Python done"
Run Code Online (Sandbox Code Playgroud)

/home/gd/test/python/back.sh :

#!/usr/bin/bash

/bin/echo "started"
/bin/sleep 80
/bin/echo "ended"
Run Code Online (Sandbox Code Playgroud)

问题是,当 python 脚本启动时,我看到打印的生成进程的 PID。但是后台没有进程。当我使用 P_WAIT 时,我看到退出代码 127,这意味着在路径中找不到该命令。但是我已经提供了所有可能的路径?这些脚本与 commands.getouput 完美配合。

python bash

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

Sqlite3:从python附加数据库查询期间删除了错误的表

我从python 2.7.2使用SQLite版本3.3.6.

使用executescript()python脚本执行此查询时:

attach database 'Capacity.db' as WeekAgo;
drop table if exists maximums;
create table maximums (Element TEXT UNIQUE, Score NUMBER , Report TEXT);
insert into maximums (Element, Score, Report) select * from WeekAgo.maximums;
Run Code Online (Sandbox Code Playgroud)

我总是最终删除附加数据库中的WeekAgo.maximums表,并且脚本崩溃,不再存在WeekAgo.maximums.我究竟做错了什么?没有DROP IF EXISTS,一切正常.

python sqlite

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

如何使用python HTMLParser提取HTML标签内容

我正在处理HTML页面,最后得到如下代码:

<td class="border">AAA</td><td class="border">BBB</td>
Run Code Online (Sandbox Code Playgroud)

我需要将AAA和BBB提取到带有HTMLParser的变量中,我无法弄清楚如何做到这一点。我不能使用任何其他解析器,因为我在python工具中受到限制。任何帮助,将不胜感激。

html python

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

标签 统计

python ×6

bash ×1

big-o ×1

html ×1

http ×1

python-import ×1

sqlite ×1