【问题标题】:Python Error in Web.Py from a Newbie来自新手的 Web.Py 中的 Python 错误
【发布时间】:2012-07-06 12:59:04
【问题描述】:

我是 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 未找到 回溯(最近一次通话最后): 文件“C:\Python27\lib\site-packages\web\application.py”,第 239 行,正在返回 >self.handle() 文件“C:\Python27\lib\site-packages\web\application.py”,第 230 行,在句柄 return >self._delegate(fn, self.fvars, args) _delegate cls = >fvars[f] 中的文件“C:\Python27\lib\site-packages\web\application.py”,第 419 行 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()

模板存放在“templates”文件夹中,如下:

$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>

如果我将索引页面的名称更改为其他名称,那么这就是错误中显示的内容。请帮忙!

【问题讨论】:

  • web.py 让开发者哭泣 :(
  • favicon.ico 显示“404 not found”。这是与 Web 浏览器中的 URL 相关联的小图标,所有 Web 浏览器都会尝试获取该文件。如果您将这样的图标文件复制到您正在服务的目录的根目录中会怎样?或者,您必须确保从该获取中正常恢复,但要开始尝试创建此文件。
  • 感谢您对网站图标的建议。我在整个开发过程中都看到了这个错误(当脚本工作时),所以我认为它不是导致问题的原因。我只是懒得现在创建一个。
  • 你是对的.. 真正的错误是“_delegate cls = >fvars[f] KeyError: u'index'”所以浏览器中的“GET /”被转换为“GET /index”并且没有名为 index(或 index.htm?)的页面,对吧?
  • 嗯,templates文件夹中有一个index.html页面。

标签: python python-2.7 web.py


【解决方案1】:

你没有 class indexGET 方法

【讨论】:

  • 你不需要 - web.py 非常不透明并且使用了很多可疑的魔法。
  • @Randy:下次试试 web.py 以外的东西。 :) Flask 很不错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 2018-05-11
  • 1970-01-01
  • 2012-10-18
  • 1970-01-01
  • 2020-01-07
相关资源
最近更新 更多