マザーボードとドーターボードドーターボード継承されたスタイルテンプレートにDjangoテンプレートで。
変数、リスト、辞書、辞書リストセット:データの基本タイプをレンダリング。
データを戻ってくるドーターボードをレンダリングし、ページレイアウトなどマザーボード行為、。ドーターボードはマザーボードのスタイルを使用する必要があります。使用:{%が "layout.html" %を拡張}
{%ブロックmycssの%} {%の末端ブロック%}:継承を使用して、CSSスタイルのマザーボード
継承体マザーボード:{%ブロックcotentの%} {%末端ブロック%}
継承スタイルマザーボードJS:{%ブロックmyjs%} {%の末端ブロック%}
テンプレートのインポート:我々は非常に美しいのHTMLコードを書いたとき、私たちは、プロジェクトで使用する場合は、インポートに来ることができます
用途:{%が "htmlページ" %が含まれます}
組み込み関数:
ジャンゴでは、組み込み関数を当社のレンダリング操作用のデータに。
例えば、制御データの場合、Pythonで、私たちが使用している:STR(名).upper小文字:STR(名前).lower。
これは、モジュールで使用されます。
{{名前| 上位}} {{名前 | 下部}} 、{{名前 |最初| 上位}} {{名前 | タイトル}} {{名前 | truncatewords:' 2 ' }}
また、当社のニーズを満たすために組み込み関数をカスタマイズすることができ、
- カスタム機能の 設定: A、templatetagsモジュールアプリの作成 Bをxx.py.作成 - simple_filter: から Djangoのインポートテンプレートの 登録 = template.Library() register.filter @() DEF my_func(ヴァル、ARG1): 返すヴァルを+ ARG1 注: 1 唯一のパラメータを渡すことができる。 図2は、関数名とパラメータとの間のスペースを持つことができません。 使用: {%負荷XXの%} {{名前 | my_func:'KKKK ' }} - simple_tag: から Djangoのインポートテンプレート 登録 = template.L ibrary() register.simple_tag @() DEF my_func(ヴァル、ARG1): 戻りヴァル+ ARG1 用法: {%負荷XX%} {%my_tag ' zekai ' ' である' ' JJJ ' }%
クッキーの和セッション
クッキーとセッション原理は次のとおりです。クッキーは、クライアントブラウザkに存在する、Vキーと値のペア、セッションは、プレゼンスサーバは、機密情報へのユーザーのキーを格納し、kは、クッキーの値である、ユーザーが上陸しましたクッキーは、利用者が正当な利用者である後を超える表現、比較のために、サーバを介して送信される際に、ユーザーが再度ログインする戻ろうクッキーが存在しない場合、あなたは、ログインしたアカウントのパスワードを入力する必要はありません。
セッション:
ユーザ機密情報を含むキーは、サーバーに存在する { {「名前」:「Zekai」、「クッキー値」「年齢」:18、}であり 、「zekai2」:「クッキー値1。」:{「名前」' 年齢':34}であり、 "クッキー値2":{ "名前":' zekai3 ' ' 年齢':45}、 "クッキー値3":{ "名前":' zekai4'、' 年齢「:56です}、 }
私たちは、セッションを生成した場合、自動的に私たちはクッキーを生成するのに役立ちます。
セッションを生成します。
ますrequest.session [ ' 名前' ] = ユーザー名 ますrequest.session [ ' PWDは' ] = PWD ますrequest.session [ ' 年齢' ] = 12
セッションはDjangoのセッションでは、リレーショナル・データベース・テーブルに格納され、
リレーショナル・データベース・セッションでは、このようなMySQLのsqlliteオラクル、DB2など、ハードディスクに格納されています
非リレーショナルデータベースベースのセッション・ストレージ・メモリで:Redisの、mongdb memcacheの
#ユーザーセッションのランダムな文字列 request.session.session_key #以下のすべてのセッション削除する現在の日付データよりも有効期限 request.session.clear_expiredを() #データベースにユーザセッションかどうかを確認するために、ランダムな文字列 request.session.exists(" SESSION_KEY 「) #は、現在のすべてのセッションデータをユーザーが削除 (request.session.delete 」SESSION_KEY 」) request.session.set_expiry(値) * 値が整数の場合、セッションは秒のいくつかの数の後に期限切れになります。 * 値はdatatimeかはtimedeltaである場合、セッションはこの時間の後に期限切れになります。 * 値が0の場合、ユーザーがブラウザセッションが失敗します閉じます。 * 値がNoneの場合、セッションがグローバルセッション有効期限ポリシーに依存します。
利用可能なストレージメディア、我々は中設定で設定sesionを生成することができます。
SESSION_ENGINE = 1. 「django.contrib.sessions.backends.db 」 #のエンジン(デフォルト) SESSION_COOKIE_NAME = 「セッションID 」 #のブラウザ上でセッションクッキーに保存されたキー、すなわち:セッションID =ランダムな文字列(デフォルト) SESSION_COOKIE_PATH = " / " #は、セッションのクッキーのパスを保存(デフォルト) SESSION_COOKIE_DOMAIN =なし #は、Cookieドメインのセッション(デフォルト)保存 SESSION_COOKIE_SECUREが= Falseの #HTTPSかどうかを転送クッキー(デフォルト) SESSION_COOKIE_HTTPONLY =真 #セッションクッキーは、HTTPのみの伝送をサポートしているかどうか(デフォルト) SESSION_COOKIE_AGE = 1209600 #クッキーの有効期限のセッション(2週間)(デフォルト) SESSION_EXPIRE_AT_BROWSER_CLOSEが= Falseで #あなたはブラウザがセッション(デフォルト)期限切れになり閉じた場合 SESSION_SAVE_EVERY_REQUEST = Falseの #で 2 SESSION_ENGINE = 「django.contrib.sessions.backends.cache 」 #のエンジン SESSION_CACHE_ALIAS = 「デフォルト」 #の使用キャッシュエイリアス(デフォルトのキャッシュメモリは、メモリキャッシュでもよい)、別名キャッシュ依存関係によって提供 SESSION_COOKIE_NAME = " セッションID「 #ブラウザキー、すなわち上のセッションのCookieとき:セッションID =ランダムな文字列 SESSION_COOKIE_PATH = 」/ " #保存されたセッションクッキーのパス SESSION_COOKIE_DOMAIN =なし #は、Cookieドメインのセッションを保存し SESSION_COOKIE_SECURE = Falseの #HTTPSを転送するかどうかクッキー SESSION_COOKIE_HTTPONLY =真 #セッションCookieはHTTPのみの伝送をサポートするかどうか SESSION_COOKIE_AGE = 1209600 #のクッキーの有効期限のセッション(2週間) = FalseのSESSION_EXPIRE_AT_BROWSER_CLOSEです #セッションが期限切れとなるよう、ブラウザが閉じられているかどうかを SESSION_SAVE_EVERY_REQUEST = Falseの # 3 SESSION_ENGINEを= 「django.contrib.sessions.backends.file 」 #のエンジン SESSION_FILE_PATH =なし #のいずれも、取得モジュールは一時ファイルを使用していない場合は、キャッシュファイルのパス仮のアドレスtempfile.gettempdir()#の例:は/ var /フォルダ/ D3 / j9tj0gz93dg06bmwxmhh6_xm0000gn / T SESSION_COOKIE_NAME = " セッションID " #セッションのCookieときに、ブラウザ上のキー、すなわち:セッションID =ランダムな文字列 SESSION_COOKIE_PATH = " / " #保存されたセッションクッキーのパス SESSION_COOKIE_DOMAIN =なし #は、Cookieドメインのセッションを保存した = SESSION_COOKIE_SECURE偽 #かどうかHTTPS転送クッキー SESSION_COOKIE_HTTPONLY =真 #セッションクッキーのみをサポートしているかどうか、HTTP伝送 SESSION_COOKIE_AGE = 1209600 #セッションクッキーの故障の日付(2週間) SESSION_EXPIRE_AT_BROWSER_CLOSEは= Falseで #あなたがブラウザを閉じた場合、セッションが期限切れになります SESSION_SAVE_EVERY_REQUEST = Falseの 4 。配置settings.py SESSION_ENGINE = ' django.contrib.sessions.backends.cached_db ' #
ミドルウェア(Djangoのリクエストのライフサイクル)
私たちは、IPブラックリストの値かどうかを決定するためにデータの前処理を行う、独自のミドルウェアにそれをカスタマイズすることができます。私たちは、カスタムミドルウェア良いミドルウェアの設定を構成する必要があります。
輸入M1
輸入平方メートル
- 設定: ミドルウェアは = [ ' django.middleware.security.SecurityMiddleware ' 、 ' django.contrib.sessions.middleware.SessionMiddleware ' 、 ' django.middleware.common.CommonMiddleware ' 、 " django.middleware.csrf.CsrfViewMiddleware ' ' django.contrib.auth.middleware.AuthenticationMiddleware ' ' django.contrib.messages.middleware。MessageMiddleware "、 ' django.middleware.clickjacking.XFrameOptionsMiddleware ' 、 ' m1.M1 ' 、 ' m2.M2 ' ]
MTVとMVC
前者が後者は、他のプログラミングのアイデアの様々なと呼ばれ、Djangoのプログラミングのアイデアを指します。
MTVとMVC MVC: のデザインモードプロジェクトのディレクトリ構造 のお客様 ------順序--------> ------ウェイターが-------->トリートメントメニューを必要とする調理します < ------------------ <------------------------- (ブラウザ) - ----------------->の機能や取り扱い------------------> データベース ビジネスロジック ビュー:コントローラモデル: LoginController LoginModel.pyの.py UserController.py UserModel.py ジャンゴ: htmlページの多く MVC M:モデル T:テンプレート(様々なhtmlページ)ビューに対応する V:ビュー(ビューハンドラ)がコントローラに対応します