2014-10-17 1 views
0

Я пытаюсь изучить web.py, чтобы получить форму, где я могу получить ответ и сделать что-то в функции с ответом, к сожалению, ответ, который возвращается, находится в формате:Анализ от web.py

<Storage {'Domain required': u'wing.com', 'minutes needed': u'1', 'Submit': u''}> 

Который, я мог бы написать какой-нибудь дерн вещи для синтаксического анализа, но, безусловно, должен быть какой-то способ, встроенный в его разобрать. Ясно, что я что-то упускаю. Как я получу свои прекрасные ответы, чтобы сесть в переменные или список или диктофон?

Заранее спасибо.

+0

Пожалуйста, уменьшите вашу программу до самого маленького полного тестового примера, который воспроизводит вашу проблему, и скопируйте эту программу в свой вопрос. См. Http://stackoverflow.com/help/mcve –

+0

Это не проблема rob, это выход формы, выход не является проблемой, я просто хочу разобрать его на переменные. –

+0

Правильно, но чтобы посмотреть, какая информация у вас отсутствует, это помогает понять, что вы уже понимаете. Это достигается тем, что вы предоставляете программу, которая работает правильно вплоть до момента, когда начинается ваше замешательство. –

ответ

2

Вот простой пример, показывающий, что доступ к этим значениям в объекте хранилища можно получить различными способами.

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

Исключением является то, что переменная имеет место в своем имени, например «Требуется домен». В этом случае вам необходимо получить доступ, используя нотацию dict.

Также здесь есть ссылка на реализацию класса Storage (основная идея состоит в том, что это подкласс Словаря): https://github.com/webpy/webpy/blob/master/web/utils.py#L52

Пример использования для доступа к атрибутам:

print response['Domain required'] 
print response['minutes needed'] 
print response.Submit 

Пример использовать для шлейфового (так же, как Dict):

for k, v in cgi_fields.items(): 
    print k, v 

Пример класс web.py:

class SomePage(object): 

    def GET(self): 
     web.header("Content-Type", "text/html") 
     return """ 
     <html><body> 
      <form method="POST"> 
       <input type="input" name="Domain required" /> 
       <input type="input" name="example_field" /> 
       <input type="input" name="example_field_2" /> 
       <input type="submit" name="submit"/> 
      </form> 
     </body></html> 
     """ 

    def POST(self): 
     cgi_fields = web.input() 
     return cgi_fields['Domain required'], cgi_fields.example_field, cgi_fields.get('example_field_2') 

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

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