2016-10-08 6 views
0

私は、他のhtmlドキュメントが拡張されているベースとなるhtmlファイルを持っています。静的なページですが、メニューに変数を入れたいと思います。私はユーザーが自分だけのベースを訪問できるようにするつもりはないので、それのためのビューを作成します。私のプロジェクトでは、ビューに明示的にそれらを記述することなく任意のページで呼び出すことができるサイト全体の動的変数を格納できます。 ありがとうございます。動的サイト全体の変数を格納する方法

答えて

2

ユーザー固有の変数については、sessionを使用してください。

グローバル定数(変数ではありません)の場合は、settings.pyを使用してください。

グローバル変数の場合は、マルチスレッド&マルチプロセスセーフなので、データベースに格納することを検討してください。

-1

また、PHPページを使用することもできます。

次に、各ページの変数に、すべてのページに「var.php」を含むインクルードファイルでアクセスします。

これは、サーバー側でのみ処理されるため、ソースhtmlには表示されません。

これを試してみたい場合は、私にメールしてください。サンプルコードをお送りします。

0

DRYの哲学を妥協しないように見ていますが、あなたのプロジェクトにタグを登録し、それをベーステンプレートに入力することです。ここをクリックhttps://stackoverflow.com/a/21062774/6629594ここをクリック

0

ストレージには任意の数の場所を取ることができます。私はデータベースの統計モデルに私を入れて、そのすべての良さを得ます(ビューにアクセスしやすくする)。

#context_processors.py: 
def my_custom_context_processor(request): 
    return {'custom_context_variable1':'foo','custom_context_variable2':'bar'} 

はsettings.pyにあなたのコンテキストプロセッサにこれを追加します:

TEMPLATE_CONTEXT_PROCESSORS = (
... 
"my_app.context_processors.ny_custom_context_processor", 
) 

あなたは(レンダリングに使用提供)、テンプレート、あなたをレンダリングする

私はそのようにと書かれたコンテキストプロセッサを持っていますあなたはちょうど使用することができます:

{{ custom_context_variable1 }} 

あなたのテンプレートで 'foo'を返すことができます。明らかに文字列を返すのは単なる例であり、コンテクスト・プロセッサーがdictを返す限り、好きなものを使うことができます。

関連する問題