【发布时间】:2011-12-06 23:36:21
【问题描述】:
我正在尝试发布到我的 Tornado Web 服务器,但不断收到 405 错误。不知道出了什么问题。我对 python 很陌生,但我已经搜索了大约一个月,最终决定试一试。
Tornado 网络服务器:
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
import os
import string
from time import sleep
from datetime import datetime
import hashlib
import json
from tornado.options import define, options
define("port", default=8001, help="run on the given port", type=int)
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
class LoginHandler(tornado.web.RequestHandler):
def get(self):
email_address = self.get_argument('email')
password = self.get_argument('password')
if email_address == '':
login_response = "{'error': true, 'msg': 'Please enter your email address.'}"
elif password == '':
login_response = "{'error': true, 'msg': 'Please enter your password.'}"
else:
login_response = "{'error': true, 'msg': 'Thank You.'}"
self.response.headers['Content-Type'] = "application/json"
self.response.out.write(json.dumps(login_response))
def main():
tornado.options.parse_command_line()
application = tornado.web.Application([
(r"/", MainHandler),
(r"/login", LoginHandler),
])
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
if __name__ == "__main__":
main()
HTML:
<form id="login_form" action="http://www.mydomain.com/server/login" method="post">
<label class="grey" for="log">Email Address</label><br />
<input type="text" name="email" style="width:99%" id="email"><br>
<label class="grey" for="pwd">Password</label><br />
<input type="password" name="password" style="width:99%" id="password"><br />
<label>
<input name="remember" type="checkbox" checked="checked" value="1" /> Remember me</label><br /><br />
<input type="submit" id="loginbtn" name="login" value="LOGIN" class="button"><br />
<a href="forgotpassword.php">Forgot your password?</a>
</form>
【问题讨论】: