我试图通过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变量?
为什么人们这样做
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编程课程的代码,第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 脚本执行 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 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
,一切正常.
我正在处理HTML页面,最后得到如下代码:
<td class="border">AAA</td><td class="border">BBB</td>
Run Code Online (Sandbox Code Playgroud)
我需要将AAA和BBB提取到带有HTMLParser的变量中,我无法弄清楚如何做到这一点。我不能使用任何其他解析器,因为我在python工具中受到限制。任何帮助,将不胜感激。