如何从请求中获取URL

时间:2013-08-01 09:37:33

标签: python google-app-engine urllib2 webapp2

我正在构建一个博客,我正在研究将其内容导出到json和xml的方法。为了实现这一点,我想到了从请求标题中获取我想要导出其内容的页面的URL。但我怀疑它是否会奏效,因为谷歌搜索没有给我任何答案。

我这样做,当我将.json添加到我的博客url的末尾时,json正在显示,所以这就是为什么我要从请求中获取url,我甚至使用了os.environ但是不行。

编辑:所以根据@Timbtron的回答,我使用了

self.request.get['path_url']

但这只会导致一个关键错误。

对不起,我明白错了它应该是

self.request.path_url

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您正在尝试获取用户在处理该用户请求时请求的URL。如果是这样,请查看以下文档:

Request data - webapp2

要考虑的另一个策略是您可以创建3个处理程序,一个用于HTML,XML和JSON。您可以根据用户请求的“文件扩展名”设置路由规则以命中相应的处理程序。

例如:

另一个要考虑的想法。

答案 1 :(得分:0)

不是解析代码中的url_path,而是让URI Routing为你处理它(借用Tombatron的例子):

class HtmlBlogHandler(webapp2.RequestHandler):
    def get(self):
        self.response.write('This is the HtmlBlogHandler.')

class JsonBlogHandler(webapp2.RequestHandler):
    def get(self):
        self.response.write('This is the JsonBlogHandler.')

class XmlBlogHandler(webapp2.RequestHandler):
    def get(self):
        self.response.write('This is the XmlBlogHandler.')

app = webapp2.WSGIApplication([
    (r'/article.html', HtmlBlogHandler),
    (r'/article.json', JsonBlogHandler),
    (r'/article.xml', XmlBlogHandler),
])

您可以自定义路径以处理各种文章ID和类型。