第46章:セッションの検証

1. djagno ORM列のデータ型
 
  のMySQL djagno
  int型interfiled
  
  
  
  
  パラメータ:
   ヌル:trueに
   設定するデフォルト:デフォルト
   MAX_LENGTH:最大長
   ユニーク:ユニークインデックス
   ユナイテッドユニークインデックス:
    クラスのメタ- :
     unique_together =(
      ("ID"、 '名前')
     )
   ノーマル関節指数:
    クラスメタ:
     index_together =(
      ()「名前」、「上記IDを述べ」
     )
   
   db_index:一般的なインデックスセット
   
   セットカラム名:このフィールドのdb_column
   
 2 Djagno管理カラムタイプ:
  
  EmailFiled:メールボックスが正しいことを確認
  
  ファイルのアップロードことを確認しますfileFiled
  。
  
  パラメータ: 
   空白:真、偽
   versobse_name:表示フィールド名
   編集可能な管理が編集できるかどうか
   、この分野help_textに管理者にメッセージを
   コンテンツ選択の選択肢を管理フレームを表示し、クロステーブルの動作を回避するために、メモリ内のデータを変更しない
   選択肢=(
    (1「M」)、
    (2、「F」)
   )
   性別= models.IntegerField(選択肢= chocies)
  
  
 3.タブ:
  
  
  構築されたタブ:
   
   ページネータの
  
   欠点:
    ページはすべて表示することができます
  
  :カスタムタブ
   
   1. models.xxxx.objects.all()[スタート:STOP]
   極度の2判断
    左端:
     ハーフを
     
    一番右:
     ハーフ
   
  PS:
   使用独自のタブのツール:
    1.クラスクラス
    2のDataTable(https://datatables.net)
   
    
 4. CSRF:
  
  
  セッティング:
   ミドルウェア= [
    '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'、
   ]
  
  @csrf_exempt @csrf_protect
  
 

今日の内容:
 
 1.テンプレート(ページをレンダリングする、常に効果)
  
  -基本データ型レンダリングするための
   変数。
   Bリストを。
   C. 辞書
   D。辞書リストセット
   
  -マスター
   layout.htmlページレイアウト
    {mycss%ブロック%}
    
    {%}%の末端ブロックの
   子が継承:
    {拡張% "layout.html" %}
    
    {%}%mycssブロック
     リンク
     スクリプトSRC
    {%末端ブロック% }
  
  -インポートは
   
   非常に美しいのHTMLコードを書いた(HTMLページ)
   
   {%含む"HTMLページ" %}
  -組み込み関数
   
   のPython:
    STR = "Zekai"
    str.upper()
    str.lower()
   
   マスター言語:
    
    
  -カスタム機能
   構成:
    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.Library()を登録
    
    register.simple_tag @()
    DEF my_func(ヴァル、ARG1):
     ヴァル+のARG1を返す
    
    用法:
     {%負荷のXX%}
     {%my_tag 'zekai' ' 'JJJ' %'です}
   
 2.クッキーとセッション(********************************)
  
  原理:
   -クッキーは:
    クライアントのブラウザに存在しますキー-VAL(値のペア)のランダムな文字列が
    
    サーバから返さ
     {「キー」:クッキー値}
   -セッションの
    
    ユーザ機密情報を含むキーは、サーバーに存在する
    
    {
     {「名前」:「Zekai」、「年齢」:18}であり、「クッキー値」
     「クッキー値1」:{「名前」: 「zekai2」 、 '年齢':34}であり、
     "クッキー値2":{ "名前": 'zekai3'、 '年齢':45}、
     "クッキー値3":{ "名前": 'zekai4'、 '年齢':56 }
    }
   
   
   
  特定の使用:
   
   ###セッションを取得
   ###クエリセッション値
   #印刷(request.session.keys())### dict_keys([ '名前'、 'PWD'、 '年齢'])
   #印刷( request.session.values())### dict_values([ 'Zekai'、 '123'、12れる])
   #プリント(request.session.items())### dict_items([( '名前'、 'Zekai' )、( 'PWD'、 '123')、( '年齢'、12である)])
   
   
   
   ###の設定値セッション
            要求。 セッション[「名前」] =ユーザ名
            なりますrequest.sessionは[「PWD」] = PWDは、
            [「年齢」]ますrequest.sessionを作る12 =です
   
   
   #ユーザセッションランダムな文字列
   request.session.session_keyの
 
   現在の日付の削除よりもすべて小さいの#セッション有効期限データ
   request.session.clear_expired( )
 
   #データベース内のランダムな文字列かどうかをユーザーのセッションをチェック
   request.session.exists(「SESSION_KEY」)
 
   #現在のすべてのセッションデータをユーザーが削除
   )(「SESSION_KEY」をrequest.session.deleteを
 
   request.session.set_expiry(値)
    *値が整数である場合、セッションは秒のいくつかの数の後に期限切れになります。
    *値はdatatimeかはtimedeltaである場合、セッションはこの時間の後に期限切れになります。
    値が0の場合は*、ユーザーがブラウザセッションが失敗します閉じます。
    *値がNoneの場合、セッションがグローバルセッション有効期限ポリシーに依存します。
   
  
   
  記憶媒体を使用することができます。
   
   1. SESSION_ENGINE =「django.contrib.sessions.backends.db」#エンジン(デフォルト)
    
    SESSION_COOKIE_NAME =「セッションID」#セッションクッキーはつまり、ブラウザに保存されているキー:セッションID =ランダムな文字列(デフォルト)
    SESSION_COOKIE_PATH = 「/」#セッション(デフォルト)のクッキーのパス保存
    クッキーのドメイン(デフォルト)の保存なし#セッションSESSION_COOKIE_DOMAIN =を
    SESSION_COOKIE_SECURE = Falseの#かどうかHTTPS転送クッキー(デフォルト)
    SESSION_COOKIE_HTTPONLY = Trueのセッションクッキーのみをサポートしているかどうか#HTTPトランスポート(デフォルト)
    クッキーの有効期限(2週間)(デフォルト)のSESSION_COOKIE_AGE = 1209600#セッション
    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」#セッションのクッキー:セッションID =ランダムな文字列
     SESSION_COOKIE_PATH =「/」#保存されたセッションクッキーのパス
     SESSION_COOKIE_DOMAIN =なし#セッションCookieドメイン名の保存
     SESSION_COOKIE_SECUREを=偽#は、HTTPS転送クッキーです
     セッションCookieはHTTPのみ送信をサポートしているかどうかSESSION_COOKIE_HTTPONLY =真#
     クッキーの有効期限(2週間)のSESSION_COOKIE_AGE = 1209600#セッション
     SESSION_EXPIRE_AT_BROWSER_CLOSEは、ブラウザを閉じるかどうか。#= Falseでセッションが期限切れになり
     SESSION_SAVE_EVERY_REQUEST = Falseの#
   
   エンジン#1 'django.contrib.sessions.backends.file' 3. SESSION_ENGINEを=
    SESSION_FILE_PATH =なし#キャッシュ/ var /フォルダ/ D3 / j9tj0gz93dg06bmwxmhh6_xm0000gn / T: それはNoneであれば、ファイルパス、そしてとして一時ファイル・モジュールは、一時的なアドレスtempfile.gettempdirを取得する()#を使用して
   
   
    、キーSESSION_COOKIE_NAME =「セッションID」#セッションは、ブラウザ上のクッキーに保存されているとき、すなわち:セッションID =ランダムな文字列
    SESSION_COOKIE_PATH =「/」#セッションクッキーのパスを保存
    SESSION_COOKIE_DOMAIN = Cookieドメインのなし#セッション保存
    SESSION_COOKIE_SECUREを= Falseの#かどうかHTTPS転送クッキー
    SESSION_COOKIE_HTTPONLY = Trueのセッションクッキーのみをサポートしているかどうか#HTTP伝送
    クッキーの有効期限のSESSION_COOKIE_AGE = 1209600#セッション(2週間)
    あなたは、ブラウザを閉じた場合SESSION_EXPIRE_AT_BROWSER_CLOSEは= Falseの#ですセッションの期限が切れたものである
    SESSION_SAVE_EVERY_REQUEST = Falseの      
   
   settings.pyの設定4.
 
    SESSION_ENGINEを=「django.contrib.sessions.backends.cached_db」#
   
   
   
   ##分散ストレージセッションが
   
  追加:
   ベースのリレーショナルデータベース:(ディスク)
     SQLLiteのMySQL OracleからDB2
   
   フィリピンの関係を:(メモリベースのデータベース)
    Redisの、mongdb、memcahce
      
 
 3ミドルウェア(Djangoのリクエストライフサイクル)
  
  -クラスクラス
   
   - process一:メソッドの要求が通過しなければならない
   - process_responseを:この方法は、レスポンスを通過しなければならない
   
   - process_viewを
   
  -設定: 
   ミドルウェア= [
    「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'
   ]
   
  -アプリケーション:
   前処理、コードはミドルウェアで書かれている
   IPの値をブラックリストされているか否かを判断する
   .....
  

 4. MTVとMVC
  
  
  MVC:
   
   のデザインモードプロジェクトのディレクトリ構造
   
   
   顧客の発注は-------- ------>ウェイターが------ --------トリートメントメニューを必要とします>シェフ
        <------------------ <-------------------------  
   
   (ブラウザ) ------------------->の機能や取り扱い------------------>データベース
              ビジネスロジック
   ビュー:コントローラモデル:
            loginController.py LoginModel.py
            UserController.py UserModel.py
    大きいHTMLページ                        
    
   
  MVC
   
   ジャンゴ:
    M:モデル
    T:テンプレート(さまざまなHTMLページ)ビューに対応する
    V:ビュー(ビュー・ハンドラ)がコントローラに対応します
   
  
  

おすすめ

転載: www.cnblogs.com/haojunliancheng/p/11209778.html