在Python Web中执行代码

时间:2015-03-20 05:36:12

标签: python html web process cgi

即时创建一个网页,向我显示我的网络中提供的SSID

为此,我使用了这段代码:

nm-tool | grep" Infra" | cut -d" " -f5> /home/nunukene/SSID3.txt

我将其保存到一个名为SSID3的文件中,稍后使用open(),read()和str.split

打开它

我的问题是我想在页面中执行的代码,不会被执行,文件SSID3.txt不会被创建

到目前为止,这是我的网站代码:

#!/usr/bin/python
import os
import subprocess
import cgitb

cgitb.enable()

a=os.system("""nm-tool | grep "Infra"  | cut -d " " -f5 > /home/nunukene/SSID3.txt""")

#SSIDStr = subprocess.check_output('nm-tool | grep "Infra" | cut -d " " -f5-6', shell=True)
#SSIDArray = str.split(SSIDStr)


ID = subprocess.check_output('ls', shell=True)
a='devilman'
print "Content-type:text/html\r\n\r\n"

print "<!DOCTYPE html>"
print "<html>"
print "<title> Not Hacking lol</title>"
print "<body>"
print "<h1> Join %s One of this networks <h1>" %(a)
print "</body>"
print "</html>" 

我不知道如何让这个过程在休息前工作!

1 个答案:

答案 0 :(得分:0)

  • 我强烈建议您使用日志记录模块来帮助您诊断问题所在。
  • 您的子进程调用无法工作的原因是您需要从该命令的所有参数中创建一个列表。

    SSIDStr = subprocess.check_output([&#39; nm-tool&#39;,&#39; |&#39;,&#39; grep&#39;,&#39;&#34; Infra&# 34;&#39;,&#39; |&#39;,&#39; cut&#39;,&#39; -d&#39;,&#39;&#34;&#34;&# 39;,&#39; -F5&#39;])

    (我不确定你是否必须转义此字符串中的双引号)

  • 以这种方式使用子进程调用可以避免使用文本文件及Web服务器用户可能遇到的写入文件的权限问题。
  • 你正在重写&#34; a&#34;变量,你没有在输出中使用文本文件。
  • 我希望cgitb.enable()行没有问题。哈文以前没见过。你有没有想过使用Flask?
  • 如果您使用的是python 3,那么print语句必须是函数。