Djangoのテンプレート、組み込み関数、カスタム関数の息子、クッキーとセッション

マザーボードとドーターボードドーターボード継承されたスタイルテンプレートに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:ビュー(ビューハンドラ)がコントローラに対応します

 


 

おすすめ

転載: www.cnblogs.com/1624413646hxy/p/11210423.html