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

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

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

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

Python

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

701閲覧

Flaskのrender_template

soft_admin

総合スコア63

Flask

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

Python

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/05/25 14:15

flaskを使って開発をしていて、以下のようなディレクトリ構造を作りました。(一部割愛)

project/ ├── app/ │   ├── models/ │   │   └── index.py │   │ │   ├── templetes/ │   │ └── index.html

modelsのディレクトリから「python index.py」を実行して、tempaltes/index.htmlを画面に出したいと思っています。

python

1from flask import * 2 3app = Flask(__name__) 4 5@app.route("/") 6def index(): 7 return render_template("../templates/index.html") 8 9if __name__ == "__main__": 10 app.run()

以上のような書き方をしているのですが、ブラウザで確認しようとすると、

jinja2.exceptions.TemplateNotFound: ../templates/index.html

というエラーが出ます。
render_templateの使い方がまちがえているのでしょうか?
どなたかご教示ください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Rendering Templatesによるとtemplatesディレクトリは提示コードに照らしわせて説明するとindex.pyと同階層にないといけないと思われます。

project/ ├── app/ │ ├── models/ │ │ +── index.py │ │ +── templetes/ │ │  └── index.html

とし、return render_template("index.html")と呼び出してみてください。

投稿2019/05/25 21:20

can110

総合スコア38256

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

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

soft_admin

2019/05/26 00:15

ネットでいろいろ調べてみたのですが、同階層でないディレクトリ構造を作っている方がいましたが、その仕組みはどうなっているのでしょうか?
can110

2019/05/26 00:31

そのURLを提示していただけますか?
can110

2019/05/26 01:46

上記ページ見ましたが、やはり/app/__init__.pyと同階層にtemplatesがあるようです。
soft_admin

2019/05/26 01:55

私が勘違いしているのかもしれないですが、 from flask import * app = Flask(__name__) @app.route("/") def index(): return render_template("../templates/index.html") if __name__ == "__main__": app.run() は__init__.pyに書くべきなのでしょうか?
can110

2019/05/26 02:14

ディレクトリ構成から判断すると、おそらくそうだと思います。 詳細は上記ページに書かれていると思いますので確認ください。
soft_admin

2019/05/26 03:26

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問