2016-05-12 1 views
0

У меня есть веб-приложение, которое работает на флеш-веб-фреймворке. Фланец больше не мог отвечать на требования приложений. Поэтому мы решили мигрировать торнадо. Мне нужно обработать ниже двух запросов.python tornado Как получить идентификатор края

/entry GET Method 
/entry/id GET Method 
  1. Когда первый запрос называется он должен вернуть аутентификацию записи.
  2. Когда второй запрос называется он должен вернуть запись которого entry_id является идентификатором

Есть другое хорошее решение для обработки выше запроса, за исключением моего решения. Решение, которое я нашел, создает циклическую сложность.

def get(self): 
    id = self.request.path.split('/')[-1] 
    if id is None: 
     #return authenticated user 
    else: 
     #return the user whose entry_id is id 

Примечание: Я ищу решение так:

@rest_user.route('/user', methods=['GET']) 
    #some code 
@rest_user.route('/user/<user_id>', methods=['GET']) 
    #some code 

ответ

2

Аналогичное расположение в Tornado использует два обработчика классов (возможно, с общим базовым классом для общих методов):

class AuthedUserHandler(RequestHandler): 
    def get(self): 
     ... 

class UserHandler(RequestHandler): 
    def get(self, user_id): 
     ... 

app = Application([ 
    ('/user', AuthedUserHandler), 
    ('/user/(.*)', UserHandler), 
]) 

 Смежные вопросы

  • Нет связанных вопросов^_^