Python 通过URL发送数据但不显示
我有3个脚本:htmlTemplate.py、info.py和hello\u get.py 以下是他们的代码: htmlTempate.py: 您好(u get.py): 当我像这样执行info.py时:Python 通过URL发送数据但不显示,python,Python,我有3个脚本:htmlTemplate.py、info.py和hello\u get.py 以下是他们的代码: htmlTempate.py: 您好(u get.py): 当我像这样执行info.py时: ./info.py server software version install_path file:///cgi/hello_get.py?nom=henry&mail=henry%40gmail.com&departement=IT&projet=stab 它
./info.py server software version install_path
file:///cgi/hello_get.py?nom=henry&mail=henry%40gmail.com&departement=IT&projet=stab
它打开我的webbrowser并显示数据:OK
Buit当我在OK按钮上键入时,它会打开一个新的网页正常url包含由OK get方法按钮支持发送的数据,如下所示:
./info.py server software version install_path
file:///cgi/hello_get.py?nom=henry&mail=henry%40gmail.com&departement=IT&projet=stab
但网络浏览器显示:
Firefox can not find the file at / cgi / hello_get.py? Henry & name = & email = henry@gmail.com department = IT & project = stab.
错误不应该很有名,但我查看了我的代码。保存:
import sys, json
config_file = open("config.txt", "w")
json.dump(sys.argv, config_file)
负载:
编辑:
/cgi/info.py
/cgi/htmlTemplate.phtml
我只有html和变量名,所以我称之为pythonhtml
它将在浏览器中以本地文件的形式打开此文件。因此,所有链接都被视为指向本地文件的链接——因此它尝试将本地文件/cgi/hello_get.py作为普通文件打开,而不是作为web url或python脚本打开。我想您需要web服务器。是的,文件位于/cgi中,在我使用另一个带有OK按钮的脚本之前,我更改了脚本和他的代码,它工作了…似乎Firefox需要全名为/cgi/hello\u get.py?Henry&name=&email的文件=henry@gmail.com&department=IT&project=stabAnd,因为您不使用webserver,Firefox会将该文件视为纯文本文件或纯HTML文件。Firefox无法在该文件中运行python代码。是的,你是对的,但是python脚本是hmtl代码,而其他脚本可以工作……这是两个新文件?我不明白它们的用处。在info.py中,您必须使用服务器软件版本安装路径保存sys.argv。在help_get.py中,您必须读取该文件才能获得该值。导入信息时,sys.argv为空,因此安装路径也将为空。是否要导入信息中的这两个文件?你能恢复每个重要脚本的所有代码吗?你能在你的info.py中的新代码行中添加注释吗?我测试了你的代码,但我不理解你的修改,当我执行时:./info.py server Eclipse 7.8 C:/bla/bli/blo Linux H1054我没有错误,但webbrowser没有打开任何网页。。。您在info.py中添加了用户操作系统,用户登录,但这些信息无法在web应用程序客户端恢复,您知道吗?
Firefox can not find the file at / cgi / hello_get.py? Henry & name = & email = henry@gmail.com department = IT & project = stab.
import sys, json
config_file = open("config.txt", "w")
json.dump(sys.argv, config_file)
import json
config_file = open("config.txt", "r")
my_argv = json.load(config_file)
print my_argv
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import platform
import getpass
import tempfile
import webbrowser
import string
import json
def main( server_IP, code_name, code_version, install_path, user_os, user_login):
template = open('htmlTemplate.phtml').read()
contenu = string.Template(template).substitute(
code_name = code_name,
code_version = code_version,
install_path = install_path,
os = user_os,
user_name = user_login
)
f = tempfile.NamedTemporaryFile(prefix='/tmp/info.html.', mode='w', delete=False)
f.write(contenu)
f.close()
webbrowser.open(f.name)
if __name__ == "__main__":
server_IP = sys.argv[1]
code_name = sys.argv[2]
code_version = sys.argv[3]
install_path = sys.argv[4]
user_os = sys.platform
sys.argv.append(user_os)
user_login = getpass.getuser()
sys.argv.append(user_login)
config_file = open("config.txt", "w")
json.dump(sys.argv, config_file)
main(server_IP, code_name, code_version, install_path, user_os, user_login)
<html>
<head>
<title>- Project -</title>
</head>
<body>
<h2><center> welcome </center></h2>
<br/><br/><br/>
Application: ${code_name}<br/><br/>
code: ${code_version}<br/><br/>
path install: ${install_path}<br/><br/>
os: ${os}<br/><br/>
unix user: ${user_name}<br/><br/>
<form name="sendData" method="get" action="http://localhost:8000/cgi/hello_get.py">
Nom: <input type="text" name="nom"><br/><br/>
mail: <input type="text" name="mail"/><br/><br/>
Département: <input type="text" name="department"/><br/><br/>
Projet: <input type="text" name="project"/> <br/><br/>
<input type="submit" value="OK"/>
</form>
</body>
</html>
#!/usr/bin/python
# -*- coding: utf-8 -*-
import cgi
import cgitb
import os
import sys
import socket
import getpass
import platform
import json
config_file = open("cgi/config.txt", "r")
my_argv = json.load(config_file)
form = cgi.FieldStorage()
machine = cgi.escape(os.environ["REMOTE_ADDR"])
nom = form.getvalue('nom')
mail = form.getvalue('mail')
department = form.getvalue('department')
project = form.getvalue('project')
print "Content-type:text/html\n\n"
print "<!DOCTYPE html>"
print "<html>"
print "<head>"
print "<title>User data</title>"
print "</head>"
print "<body>"
print "<h2><center> Resume </center></h2><br/><br/><br/>"
print "Your data : "
print "install path is : ", my_argv[4]
print "<br/><br/>"
print "OS is :", my_argv[5]
print "<br/><br/>"
print "adress IP is : ", machine
print "<br/><br/>"
print 'Unix user is : ', my_argv[6]
print "<br/><br/>"
print "your name is :", nom
print "<br/><br/>"
print "your mail is :", mail
print "<br/><br/>"
print "your department is :", department
print "<br/><br/>"
print "your project is :", project
print "</body>"
print "</html>"
#!/usr/bin/env python
import BaseHTTPServer
import CGIHTTPServer
import cgitb; cgitb.enable()
server = BaseHTTPServer.HTTPServer
handler = CGIHTTPServer.CGIHTTPRequestHandler
server_address = ("", 8000)
handler.cgi_directories = ["/cgi"]
httpd = server(server_address, handler)
httpd.serve_forever()