首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >姜戈: RequestContext问题?

姜戈: RequestContext问题?
EN

Stack Overflow用户
提问于 2009-12-29 02:15:05
回答 3查看 1.1K关注 0票数 0

我是Django和Python的新手。

当我把我的代码从我的本地开发框移动到我的网站上的网站上,它似乎破坏了我的代码。如果我将(context_instance=RequestContext(request))从我的主应用程序views.py中删除,它似乎解决了这个问题。如果以后我把线放回去的话,效果很好。

代码语言:javascript
复制
return render_to_response('template.html', {"var": var},**context_instance=RequestContext(request)**)

来自webhost主机的错误电子邮件:

代码语言:javascript
复制
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

代码语言:javascript
复制
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}

谢谢!!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-29 09:16:44

并不是RequestContext上下文只触发tweeter查找,它实际上失败了。如果你把线放回去就行了?这只能意味着您的twitter查找问题是不一致的,就像任何HTTP查找一样,因此您应该通过处理IOError (它是HTTPErrorURLError的父级,由urllib2抛出)来处理可能的网络问题。

代码语言:javascript
复制
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也可能有帮助。

票数 1
EN

Stack Overflow用户

发布于 2009-12-29 06:23:23

您的跟踪清楚地表明问题在GetUserTimeline of twitter.API()中。

在您的TWITTER_USER中定义了settings吗?

票数 1
EN

Stack Overflow用户

发布于 2010-01-18 21:18:59

一旦我将例外扩展到包括以下内容,就解决了我的问题。非常感谢!

代码语言:javascript
复制
except (IOError, urlopen, URLError, HTTPError):
       pass
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1972583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档