我是Django和Python的新手。
当我把我的代码从我的本地开发框移动到我的网站上的网站上,它似乎破坏了我的代码。如果我将(context_instance=RequestContext(request))从我的主应用程序views.py中删除,它似乎解决了这个问题。如果以后我把线放回去的话,效果很好。
return render_to_response('template.html', {"var": var},**context_instance=RequestContext(request)**)来自webhost主机的错误电子邮件:
Traceback (most recent call last):
File "/home/hhadmin69/webapps/django/lib/python2.5/django/core/handlers/base.py", line 92, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/hhadmin69/webapps/django/hhv3/article/views.py", line 32, in post_index
return render_to_response('article/post_index.html', {"posts": posts},context_instance=RequestContext(request))
File "/home/hhadmin69/webapps/django/lib/python2.5/django/template/context.py", line 107, in __init__
self.update(processor(request))
File "/home/hhadmin69/webapps/django/hhv3/context_processors.py", line 12, in latest_tweet
tweet = twitter.Api().GetUserTimeline( settings.TWITTER_USER )[0]
File "build\bdist.win32\egg\twitter.py", line 1414, in GetUserTimeline
File "build\bdist.win32\egg\twitter.py", line 2032, in _FetchUrl
File "/usr/local/lib/python2.5/urllib2.py", line 387, in open
response = meth(req, response)
File "/usr/local/lib/python2.5/urllib2.py", line 498, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/local/lib/python2.5/urllib2.py", line 425, in error
return self._call_chain(*args)
File "/usr/local/lib/python2.5/urllib2.py", line 360, in _call_chain
result = func(*args)
File "/usr/local/lib/python2.5/urllib2.py", line 506, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 400: Bad Request
'SERVER_SOFTWARE': 'Apache/2.2.12 (Unix) mod_wsgi/2.5 Python/2.5.4',context_processors.py
from datetime import datetime
from django.conf import settings
from django.core.cache import cache
import twitter
from django.template import Library, Node, TemplateSyntaxError
def latest_tweet( request ):
tweet = cache.get( 'tweet' )
if tweet:
return {"tweet": tweet}
try:
tweet = twitter.Api().GetUserTimeline( settings.TWITTER_USER )[0]
tweet.date = datetime.strptime( tweet.created_at, "%a %b %d %H:%M:%S +0000 %Y" )
cache.set( 'tweet', tweet, settings.TWITTER_TIMEOUT )
except (RuntimeError, TypeError, NameError):
pass
return {"tweet": tweet}谢谢!!
发布于 2009-12-29 09:16:44
并不是RequestContext上下文只触发tweeter查找,它实际上失败了。如果你把线放回去就行了?这只能意味着您的twitter查找问题是不一致的,就像任何HTTP查找一样,因此您应该通过处理IOError (它是HTTPError和URLError的父级,由urllib2抛出)来处理可能的网络问题。
try:
tweet = twitter.Api().GetUserTimeline( settings.TWITTER_USER )[0]
except IOError, e:
logging.error(e) #or just print, dont know how you log准确地分析失败的原因和时间,并试图找到问题所在。查看urllib2试图访问的实际URL也可能有帮助。
发布于 2009-12-29 06:23:23
您的跟踪清楚地表明问题在GetUserTimeline of twitter.API()中。
在您的TWITTER_USER中定义了settings吗?
发布于 2010-01-18 21:18:59
一旦我将例外扩展到包括以下内容,就解决了我的问题。非常感谢!
except (IOError, urlopen, URLError, HTTPError):
passhttps://stackoverflow.com/questions/1972583
复制相似问题