2016-04-08 2 views
3

Недавно я начал работать над проектом. В котором я отправляю данные с html-страницы с помощью тега <a>. В бэкэнд я использую python webapp2 feamework. Когда я получаю данные, они отлично отображаются. Но когда я сравниваю его с некоторой строкой для дальнейшего использования, она не работает.Получить данные из href, но это невозможно использовать

Я знаю, когда мы получаем данные в Юникоде. Но я преобразовал его в utf-8, и он все еще не работает.

Вот код html. Предположим, что я послал "item 2" as itemname

<a href="/main/items/?itemname= {{res.itemName}}&itemdescription={{res.itemDescription}}"> Click me </a> 

код, который я использую для извлечения данных является

def get(self,nam,des): 

    nam = self.request.get('itemname') 
    itemDesc= self.request.get('itemdescription') 
    name = nam.encode('utf-8') 

    if name == "item 2": 
     self.response.write("Equal") 

Я также попробовать без кодирования, но до сих пор она не работает. Он отлично отображает значение имени элемента. Но они не сравнивают их. Пожалуйста, помогите, где я делаю ошибку.

+0

Что происходит, когда вы напечатать переменная? И какую версию python вы используете? –

+1

Я использую python 2.7. Он печатает значение, которое отправляется с html-страницы отлично. –

+0

Возможно, вам нужно «импортировать urllib» и «urllib.unquote (name)», а также –

ответ

1

Похоже на 2 проблемы, перед тем как ожидаемое значение будет установлено, а строка urlquoted.

Чтобы исправить пространство:

<a href="/main/items/?itemname={{res.itemName}}&itemdescription={{res.itemDescription}}"> Click me </a> 

А потом работать с кодировкой, добавьте import urllib и измените строку

name = nam.encode('utf-8') 

в

name = urllib.unquote(nam.encode('utf-8')) 
Смежные вопросы