2013-08-01 1 views
0

Я создаю блог, и я работаю над тем, как экспортировать его содержимое в json и xml. Чтобы получить эту работу, я подумал о получении URL-адреса страницы, содержимое которой я хотел бы экспортировать из заголовков запросов. Но я сомневаюсь, что это сработает, потому что поиск в Google не дал мне никаких ответов.Как получить URL-адрес от запроса

Я делаю это так, что, когда я добавляю .json к концу своего URL-адреса блога, json отображается, поэтому я ищу получение URL-адреса из запроса, я даже использовал os.environ, но это не работал.

EDIT: Так, как на @ ответ Timbtron, я использовал

self.request.get['path_url'] 

Но это привело лишь к ключевой ошибке.

Жаль, что я понял, что неправильно это должно быть

self.request.path_url 
+0

Обратите внимание, что в моем ответе я ссылаюсь на ряд атрибутов, а не на ключи. – Tombatron

ответ

1

Если я вас правильно понимаю, вы пытаетесь получить URL, который пользователь запрошенную при обработке запроса этого пользователя. Если да, то взгляните на следующий документ:

Request data - webapp2

Другая стратегия, чтобы рассмотреть, что вы могли бы создать 3 обработчиков, один для HTML, XML и JSON. Вы можете настроить правила маршрутизации, чтобы попасть в соответствующий обработчик в зависимости от «расширения файла», которое запрашивал пользователь.

Например:

Просто еще одна идея, чтобы рассмотреть.

+0

Ну, я делаю отдельный обработчик XML для экспорта его в xml и очень благодарен за эту ссылку @Tombatron. Поэтому, если я это правильно понимаю, если я использую 'self.request.get ('url_path')', тогда я получу URL-адрес, который пользователь хочет проанализировать? – Bhargav

+0

Когда я добавляю атрибут запроса к функции get self.request.get ['path_url'], я получаю ключевую ошибку. – Bhargav

+0

'path_url' не является ключом словаря, это атрибут объекта запроса. 'self.request.path_url' должен сделать трюк. – Tombatron

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), 
]) 

Вы можете настроить маршруты для обработки различных идентификаторов статей и типов ,

+1

Спасибо за правописание моего имени. – Tombatron

+0

Я использую маршрутизацию URI для конкретных обработчиков, проблема возникает, когда я пытаюсь получить доступ к URL-адресу, который пользователь запросил для разбора JSON или XML. – Bhargav

+1

Почему бы вам не позволить маршрутам разобрать URL-адрес для вас? '(r '/ article/json/(\ d +)', JsonBlogHandler)' будет анализировать число.Затем используйте 'def get (self, article_id)', чтобы получить это число. –