我试图在BaseHTTPRequestHandler的子类中创建自己的函数
Weblog(BaseHTTPServer.BaseHTTPRequestHandler):类
def do_HEAD(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
def do_GET(self):
"""Respond to a GET request."""
if self.path == '/':
do_index()
elif self.path == '/timestamp':
do_entry()
elif self.path == '/post':
do_post_form()
def do_index(self):
'''If the PATH_INFO is '/' then the weblog index should be presented'''
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
post = None
content = {}
line = '<tr id="%(timestamp)s"><td>%(date)s</td>'
line += '<td><a href="%(timestamp)s">%(title)s</a></td></tr>'
for timestamp in weblog.list_posts():
post = storage.retrieve_post(timestamp)
if content.has_key('lines') == false:
content['lines'] = line %post
else:
content['lines'] += line %post
self.wfile.write('<a href = "post">Add a post</a>')
self.wfile.write('<table><tr><th>Date</th><th>Title</th></tr>%(lines)s</tables>' %content)当我在逗号行上运行它时,它会给出以下错误:-
异常在处理来自('127.0.0.1',59808)的请求时发生
回溯(最近一次调用):
文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py",第281行,在_handle_request_noblock中
Self.process_request(请求,client_address)
文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py",第307行,在process_request中
Self.finish_request(请求,client_address)
文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py",第320行,在finish_request中
Self.RequestHandlerClass(请求、client_address、self)
文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py",第615行,在__init__中
self.handle()
文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py",第329行,在手
self.handle_one_request()
文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py",第323行,在handle_one_request中
方法()
Weblog.py文件,第34行,在do_GET中
do_index()
NameError:未定义全局名称“do_index”
我在这里做错什么了吗?
发布于 2010-08-13 05:09:29
要在当前类中调用某些内容,应该使用self.method_name()
def do_GET(self):
"""Respond to a GET request."""
if self.path == '/':
self.do_index()
elif self.path == '/timestamp':
self.do_entry()
elif self.path == '/post':
self.do_post_form()https://stackoverflow.com/questions/3474045
复制相似问题