2015-09-01 2 views
0

Я пытаюсь получить информацию о стране после выбора названия страны и нажатия кнопки. Я использую cherrypy, jinja, python и mysql. Поэтому я хочу, чтобы информация отображалась в браузере.Ошибка MySQL + Python вне диапазона

Но когда я нажимаю на кнопку отправки, я получаю эту ошибку:

countList=self.get_info(countryInfo)[0]  
IndexError: list index out of range 

Вот основная часть кода, которая вызывает проблему.

@cherrypy.expose 
    def get_Country_Info(self,countryInfo=None): 
     self.get_Names() 
     countList=self.get_info(countryInfo)[0] 
     tmpl=env.get_template("submit_test.html") 
     return tmpl.render(salutation="Welcome to", target="Country List", myList=self.country_list, country=countList) 

def get_info(self,countryInfo): 
     self.con.execute("SELECT Code, Name, Continent, Population, Capital FROM Country WHERE Name LIKE %s", (countryInfo,)) 
     self.countryDB=list(self.con.fetchall()) 
     return self.countryDB 
+1

является ResultSet возвращаемый 'self.con.fetchall()' пустой? если вы нажмете пустой список на 'list', он будет beomce' [] ', и индексирование будет вне диапазона –

ответ

0

Вы не вызываете execute правильно.

Try: self.con.execute("SELECT Code, Name, Continent, Population, Capital FROM Country WHERE Name LIKE ?", countryInfo)

+0

Спасибо, это помогло –

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

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