为什么这可以通过命令行工作,但不能通过Web浏览器工作?

时间:2012-11-05 23:06:59

标签: python html forms

为什么这可以通过命令行工作,但不能通过网络浏览器工作? (python中的两个文件只加载第二个文件)

import cgi
import cgitb; cgitb.enable()
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
# get the info from the html form
form = cgi.FieldStorage()
#set up the html stuff
reshtml = """Content-Type: text/html\n
<html>
 <head><title>login</title></head>
 <body>
 """

print reshtml 

User_Name = form.getvalue('User_Name')
password = form.getvalue('Pass_Word')
log="info:  "
if User_Name == 'NAME' and password == 'passcode':
    log=log+"login passed "
else:
    log=log+"login failed "
print log
print '</body>'
print '</html>'

我使用传递参数“User_Name”和“Pass_Word”的文件调用它:

#!/Python27/python
print "Content-type: text/html"
print
print """
<html><head>
<title>log in</title>
</head><body>
"""
import sha, time, Cookie, os, fileinput, cgi, cgitb 
import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
log = "info:  "
cookie = Cookie.SimpleCookie()
string_cookie = os.environ.get('HTTP_COOKIE')
string_cookie = str(string_cookie)
infoform = """
    <link rel="stylesheet" type="text/css" href="styles/home.css" media="screen" />
    <div id="top" style=" height:50px;width:100%;position:absolute;left:0px;top:0px;" >
    <form action="router.py" method="post" target="_self">
    <div id="form" style="position:absolute;left:15px;top:20px;" >
    <input type="text" name="User_Name" value="User Name">
    <input type="password" name="Pass_Word" value="Password">
    <input type="hidden" name="status_url">
    <input type="submit" value="Log in"> 
    </div>
    </form>
    <div ID"home"></div>
    </div>

    <div id="GBbody" style="position:absolute;left:1px;top:55px;height:100%;width:100%;" >
    <p id="disply">
    <center><h2>
    Hi, and welcome!
    </h2></center>
    <h4>    
    Did you know: just the movie player and code that goes with it takes<br>
    474 lines of code so-far, and may not work many web browsers (for the time being), however <br>
    Google chrome is fully compatible at  this point.
    </h4>
    </p>
    </div>
    """
loginas = """
<form action="home.py" method="post" target="_self">
<input type="submit" value="Continue last session" style="position:absolute;right:15px;top:20px;"> 
</form>
"""
if "sess" in string_cookie:
    infoform = infoform.replace('<div ID"home"></div>',loginas)
    print infoform
else:
    print infoform

print "</body></html>"

但是,它打印出一个内部服务器错误页面,帮助?我刚刚重新安装了python 2.7.3的后脚本

1 个答案:

答案 0 :(得分:0)

尝试使用Flask它不仅具有调试支持,而且还有制作Web服务所需的所有工具,如果您不想使用Flask。查看您的服务器(Apache或nginx)日志