2014-02-01 2 views
0

Что было бы лучше, чтобы получить содержимое от двух разных обработчиков запросов? Это как моя структура приложение выглядитДолжен ли я выполнить выборку URL или вызвать метод класса? Какой был бы лучший вариант

#/twitter/<query> 
class TwitterSearch(webapp2.RequestHandler): 

    def get(self,query): 

     #get data from Twitter 
     json_data = data_from_twiiter() 
     return json_data 

#/google/<query> 
class GoogleSearch(webapp2.RequestHandler): 

    def get(self,query): 

     #get data from Twitter 
     json_data = data_from_google() 
     return json_data 

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

Мне также необходимо объединить оба этих результата и предложить пользователю. Какой был бы мой лучший подход для этого?

Должен ли я назвать метод get соответствующих классов следующим образом?

#/search/<query> 
#Combined search result from google and twitter 
class Search(webapp2.RequestHandler): 

    def get(self,query): 

     t = TwitterSearch() 
     twitterSearch = t.get(self,query) 

     g = GoogleSearch() 
     googlesearch = g.get(self,query) 

Или получить данные из URL-адреса, используя urllib или что-то вроде этого?

#/search/<query> 
#Combined search result from google and twitter 
class Search(webapp2.RequestHandler): 

    def get(self,query): 

     t = get_data_from_URL('/twitter/'+query) 

     g = get_data_from_URL('/google/'+query) 

Или существует какой-либо другой способ справиться с этой ситуацией?

ответ

4

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

Я бы сделал это, извлекая код запроса в отдельную функцию и вызвав его из обоих обработчиков запросов.

+0

Спасибо. Это именно то, что я только что сделал. –