質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1222閲覧

Internal server error

Lavieestbelle

総合スコア10

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/03/24 01:44

前提・実現したいこと

Internal server errorを解決したい

発生している問題・エラーメッセージ

Flaskでhello.pyのrender_template を使ってindex.htmlと連携させようとしているときに
エラーが起こりました。
ちなみにhello.pyだけであれば、powershellで実行し、ブラウザで開くとちゃんと表示されます。

PS C:\Users\kayoc\Documents\myapp> pip3 install flask
Requirement already satisfied: flask in c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages (1.0.2)
Requirement already satisfied: itsdangerous>=0.24 in c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages (from flask) (1.1.0)
Requirement already satisfied: click>=5.1 in c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages (from flask) (7.0)
Requirement already satisfied: Jinja2>=2.10 in c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages (from flask)
(2.10)
Requirement already satisfied: Werkzeug>=0.14 in c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages (from flask) (0.14.1)
Requirement already satisfied: MarkupSafe>=0.23 in c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages (from Jinja2>=2.10->flask) (1.1.0)
PS C:\Users\kayoc\Documents\myapp>
PS C:\Users\kayoc\Documents\myapp> $env:FLASK_APP="hello.py"
PS C:\Users\kayoc\Documents\myapp> flask run

  • Serving Flask app "hello.py"
  • Environment: production
    WARNING: Do not use the development server in a production environment.
    Use a production WSGI server instead.
  • Debug mode: off
  • Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

[2019-03-24 10:33:40,338] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask_compat.py", line 35, in reraise
raise value
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1799, in dispatch_request
return self.view_functionsrule.endpoint
File "C:\Users\kayoc\Documents\myapp\hello.py", line 7, in hello_world
return render_template("index.html", name_value = name)
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\templating.py", line 134, in render_template
return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list),
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\environment.py", line 869, in get_or_select_template
return self.get_template(template_name_or_list, parent, globals)
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\environment.py", line 830, in get_template
return self._load_template(name, self.make_globals(globals))
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\environment.py", line 804, in _load_template
template = self.loader.load(self, name, globals)
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\loaders.py", line 113, in load
source, filename, uptodate = self.get_source(environment, name)
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\templating.py", line 58, in get_source
return self._get_source_fast(environment, template)
File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\templating.py", line 86, in _get_source_fast
raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: index.html
127.0.0.1 - - [24/Mar/2019 10:33:40] "GET / HTTP/1.1" 500 -

該当のソースコード

hello.py
index.html](7e308c0eb4680b89bb435049376d0c1b.png)

試したこと

Qiita teratailで過去の質問を検索しました

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ファイル名だけでは場所がわからないので、ディレクトリを参照するための情報が要るのだと思います。render_template関数の引数にtemplate_folder="template"など追加する必要があるのではないでしょうか。

投稿2019/03/24 01:48

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lavieestbelle

2019/03/24 04:33

ご回答いただきありがとうございます。 追加してみたところ、、下記のようになりました。 追加の仕方が間違っていたら教えていただきたいです。 File "C:\Users\kayoc\Documents\myapp\hello.py", line 1 from flask import Flask, render_template, template_folder="template" ^ SyntaxError: invalid syntax PS C:\Users\kayoc\Documents\myapp> $env:FLASK_APP="hello.py" PS C:\Users\kayoc\Documents\myapp> flask run * Serving Flask app "hello.py" * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off
hayataka2049

2019/03/24 04:41

render_templateを呼び出している部分で render_template("index.html", template_folder="template") みたいな感じにすると良いと思います。複数箇所あるので、それらすべてで(もともとある引数は残して)template_folder="template"を足してみてください。
Lavieestbelle

2019/03/24 07:55 編集

早々にご回答いただきありがとうございます。 下記で試したのですが まだ、エラーから抜けられないです。 from flask import Flask, render_template, template_folder="template" app=Flask(__name__) @app.route("/") def hello_world(): ''''name = "Flask" ''''return render_template("index.html", template_folder="template",name_value = name) @app.route("/about") def about(): return render_template("index.html", template_folder="template")
hayataka2049

2019/03/24 05:01

from flask import Flask, render_template, template_folder="template" もとに戻してください。
Lavieestbelle

2019/03/24 05:01

ちなみに、returnのところは4つインデントをしています。 このサイトでのインデント表示方法がわからずこのような表記方法になっています。
Lavieestbelle

2019/03/24 05:03

その部分、もとに戻した状態で実行済みですがそれでもエラーでした。。。泣
hayataka2049

2019/03/24 05:04

コメント欄はインデント消えます。質問・回答本文であれば ```python ここにコードを書く ``` のようなmarkdownを使えます(https://teratail.com/tour や質問時に表示される案内を見てください)。後から編集もできるので、エラーをmarkdownで囲って、コードの画像を差し替えておいていただけると見やすいです。
hayataka2049

2019/03/24 05:04

エラーが出たならどんなエラーだったのか教えてください。質問文のものと同じですか?
Lavieestbelle

2019/03/24 07:54

hayataka2049さん、ありがとうございます!できました! 迅速にお答えいただきありがとうございました! markdownの記述方法ですが試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問