我是 Python 和 web.py 的新手,所以请原谅我的无知。我有一个正在运行的网页脚本,然后随机停止工作。我已经在这几天了,似乎无法解决这个问题。
我不断收到以下错误:
127.0.0.1:49664 - - [05/Jul/2012 23:58:42] “HTTP/1.1 GET /” - 500 内部服务器错误 127.0.0.1:49664 - - [05/Jul/2012 23:58:43] “HTTP/1.1 GET /favicon.ico” - 404 Not Found Traceback(最近一次调用最后一次):文件“C:\Python27\lib\site-packages\web\application.py”,第 239 行,处理中返回 >self .handle() 文件“C:\Python27\lib\site-packages\web\application.py”,第 230 行,在句柄中返回 >self._delegate(fn, self.fvars, args) 文件“C:\Python27\ lib\site-packages\web\application.py",第 419 行,在 _delegate cls = >fvars[f] KeyError: u'index'
这是我的 Python 脚本:
import web
from web import form
db = web.database(dbn='mysql', user='dbuser', pw='dbuser', db='database')
render = web.template.render('templates/')
urls = (
'/', 'index',
'/update/(\d+)', 'update'
)
app = web.application(urls, globals())
myform = form.Form(
form.Radio('sentiment',[('1','Positive'),('3','Neutral'),('2','Negative'),('4','SPAM')],description='Sentiment',))
def insert_sentiment(id, sentimentvar):
db.update('tweets', sentiment=sentimentvar, where="tweet_id=$id", vars=locals())
class update:
def GET(self):
tweets_index = db.select('tweets', where='sentiment is null', order='RAND()', limit=1)
form = myform()
return render.index(form, tweets_index)
raise web.seeother('/')
def POST(self, id):
form = web.input()
insert_sentiment(id, form.sentiment)
raise web.seeother('/')
if __name__=="__main__":
web.internalerror = web.debugerror
app.run()
模板存储在“模板”文件夹中,如下所示:
$def with (form,tweets_index)
$for tweets in tweets_index:
$tweets.tweet
$tweets.normalized_tweet
<form action="/update/$tweets.tweet_id" method="post">
$:form.render()
<input type="submit" value="update"/>
</form>
如果我将索引页面的名称更改为其他名称,那么这就是错误中显示的内容。请帮忙!