首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的BaseHTTPServer的问题

我的BaseHTTPServer的问题
EN

Stack Overflow用户
提问于 2010-08-13 05:05:32
回答 1查看 2.4K关注 0票数 2

我试图在BaseHTTPRequestHandler的子类中创建自己的函数

Weblog(BaseHTTPServer.BaseHTTPRequestHandler):类

代码语言:javascript
复制
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”

我在这里做错什么了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-13 05:09:29

要在当前类中调用某些内容,应该使用self.method_name()

代码语言:javascript
复制
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()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3474045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档