2017-09-06 8 views
3

私はフラスコアプリケーションを実行しようとしています。これは昨晩うまくいきました。しかし、今朝、(ただし、別のコンピュータに)同じコードを実行しようと、私はエラーを取得しています:jinja2.exceptions.UndefinedError - 属性なし 'favicon.ico'

jinja2.exceptions.UndefinedError: 'flask.sessions.SecureCookieSession object' has no attribute 'favicon.ico'

完全トレースバック:

Traceback (most recent call last): 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1997, in __call__ 
    return self.wsgi_app(environ, start_response) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1985, in wsgi_app 
    response = self.handle_exception(e) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1540, in handle_exception 
    reraise(exc_type, exc_value, tb) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise 
    raise value 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app 
    response = self.full_dispatch_request() 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request 
    rv = self.handle_user_exception(e) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception 
    reraise(exc_type, exc_value, tb) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise 
    raise value 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request 
    rv = self.dispatch_request() 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "/Users//Desktop/survey-system/scripts/routes.py", line 88, in course_survey 
    return render_template("survey.html", course=course) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/templating.py", line 134, in render_template 
    context, ctx.app) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/templating.py", line 116, in _render 
    rv = template.render(context) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render 
    return original_render(self, *args, **kwargs) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render 
    return self.environment.handle_exception(exc_info, True) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception 
    reraise(exc_type, exc_value, tb) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise 
    raise value.with_traceback(tb) 
    File "/Users//Desktop/survey-system/templates/survey.html", line 10, in top-level template code 
    {% for q, a in zip(session[course]["questions"], session[course]["answers"]) %} 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/jinja2/environment.py", line 411, in getitem 
    return obj[argument] 
jinja2.exceptions.UndefinedError: 'flask.sessions.SecureCookieSession object' has no attribute 'favicon.ico' 

survey.html

<body> 
     <h1 align="left"> This is the survey for {{course}}</h1> 
     <form> 
     {% for q, a in zip(session[course]["questions"], session[course]["answers"]) %} 
     ... do stuff ... 

routes.py(関連するコード)

@app.template_global(name='zip') 
def _zip(*args, **kwargs): # So that jinja may use the zip function 
    return zip(*args, **kwargs) 

@app.route('/<string:course>', methods=['GET', 'POST']) 
def course_survey(course): 
    return render_template("survey.html", course=course) 

@app.route('/questionbank', methods=['GET', 'POST']) 
def q_bank(): 
    if request.method == "POST": 
     ... 
     ... 
     elif "final-survey" in request.form: 
      ... 
      new_survey = Survey(x, y, z) # Where Survey is a custom class created 
      return redirect(url_for("course_survey", course=new_survey)) 

私のコードでは、フラスコまたはHTMLを介して自分自身のファビコンを作成しようとしていません。

スクリプトも決して壊れません。ウェブページは正常に機能して正常に機能しますが、すべてのルートでこのトレースバックを取得しています。

+0

驚くべきことに、エラーは不思議に去ってしまった - しかし、私はまだどんな説明でも答えが大好きです – TerryA

+0

確かに分かりませんが、次回のためにこれを追加したいのですか? http://flask.pocoo.org/docs/0.12/patterns/favicon/ –

+0

@TarunLalwaniリンクをありがとうございます - 私はfaviconが私が将来小さな小さなものとして実装したいと思うものだと確信しています:) – TerryA

答えて

1

それは自動的にファビコン

127.0.0.1 - - [07/Sep/2017 10:42:48] "GET /favicon.ico HTTP/1.1" 200 - 

を取得しようと、あなたの

@app.route("/<string:course>") 

キャッチことと「[ファビコンをセッションをつかむしようとファビコンを持っていないにもかかわらず、フラスコかもしれません。 ico "]に失敗して失敗する

あなたのブラウザがfavicon.icoをキャッシュして、一度しかロードしないので、エラーがおそらく消えた

関連する問題