2017-02-26 3 views
2

Pythonコード:見つからないJinja2のテンプレートと内部サーバーエラー

from flask import Flask, render_template 

app = Flask(__name__) 

@app.route("/") 

def hello(): 

    return render_template('testing.html') 

if __name__ == "__main__": 
    app.run() 

Htmlのファイル:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Title</title> 
</head> 
<body> 
<h1>My name is pk</h1> 
</body> 
</html> 

またpycharmコミュニティ版でJinja2のを有効にする方法。私が直接あなたがすでにフラスコパッケージをダウンロードした場合

また
|-app 
|--templates // where your html files must be in 
|--static // where your js and css files must be in 
|--.py files 
|--other packages 

神社は、お使いのシステムで有効になっている同じプロジェクト

+0

完全なエラーとファイルとディレクトリの構造を教えてください。 – coralvanda

+0

「testing.html」ファイルがtemplatesフォルダ内にあることを確認してください。あなたがあなたのアプリの構造を見せることができれば良いです。 – thangtn

+0

@coralvanda私は以下の戦略を使って解決策を得ました。ありがとう、私の質問に答えてください。 – pk786

答えて

2

デフォルトでは、Flaskはアプリのルートレベルのtemplatesフォルダを探します。

http://flask.pocoo.org/docs/0.10/api/

template_folder - アプリケーションによって使用されるべきテンプレートが含まれているフォルダ。アプリケーションのルート パスのデフォルトの「templates」フォルダ。

app = Flask(__name__, template_folder='template') 

は、だから、

  1. は、あなたのtemplateフォルダをフラスコアプリで認識持ってtemplate_folderのparamを供給templatetemplatesに名前を変更するいくつかのオプションを持っています

    フラスコtemplatesディレクトリは、そのディレクトリが作成されたモジュールと同じフォルダにあることが必要です。 代わりに他の場所で見てフラスコを伝える必要があります:

    app = Flask(__name__, template_folder='../pages/templates') 
    

    パスは現在のモジュールの相対パスに解決されるように、これは動作します。

    blueprintsを使用せずに、モジュール単位のテンプレートディレクトリを持つことはできません。一般的なパターンは、テンプレートを分割する代わりにtemplatesフォルダのサブディレクトリを使用することです。 などがロードされたtemplates/pages/index.htmlを使用してください。

+0

ありがとうございました。これは私を助けた。 – pk786

2

フラスコファイル構造にhtmlファイルとの.pyファイルを作成しています。

+0

ありがとう、私はファイル構造にいくつかの問題があることを確認しました。今、完璧に働いている。 – pk786

関連する問題