2017-02-02 8 views
2

Пытается научить себя Python. У меня есть простое веб-приложение, которое принимает значение поля формы, присваивает его переменной «new_quote» и помещает ее в поле «контент» в таблице SQLite.Итерация по ошибке без последовательности с веб-формой python

Когда я нажимаю кнопку отправки на веб-форму, я получаю TypeError ...

<type 'exceptions.TypeError'>: iteration over non-sequence 
     args = ('iteration over non-sequence',) 
     message = 'iteration over non-sequence' 

Он не любит ниже линии, но я не уверен, куда идти Вот.

for each_item in new_quote: 

Ниже приведен сценарий CGI для добавления цитаты в БД. Любой совет будет принят во внимание.

#!/usr/bin/env python 

import sqlite3 
import cgi 

import cgitb 
cgitb.enable() 

# This code takes the content of the form and assigns it to a variable called new_quotes. 

form = cgi.FieldStorage() 
new_quote = form.value[(0)] 

# Items from new_quotes are pushed into the DB in the code below. 

for each_item in new_quote: 

    connection = sqlite3.connect("quotes.sqlite") 
    cursor = connection.cursor() 
    content = new_quote[each_item].content 
    cursor.execute("INSERT INTO quotes(content) VALUES (?)") 
    connection.commit() 
    connection.close() 

ответ

0

Вы пытаетесь выполнить итерацию по самому объекту, который возвращает ошибку. Вы хотите перебирать список внутри объекта,

+0

Хорошо, спасибо за отзыв. Я полагаю, что это означает указание конкретного экземпляра объекта «new_quote». Я изменил цикл for, чтобы выглядеть так: 'для each_item в new_quote.new_quote:' Теперь я получаю эту ошибку : экземпляр MiniFieldStorage не имеет атрибута 'new_quote' – Trey

+0

Фактически выяснил это всего лишь минуту назад. Спасибо за ваш совет! – Trey