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に管理者にメッセージを
の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「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を作成
のPython:
STR = "Zekai"
str.upper()
str.lower()
マスター言語:
-カスタム機能
構成:
A、アプリモジュールtemplatetagsを作成
B。创建xx.py
- simple_filter:
Djangoのインポートテンプレートから
- simple_filter:
Djangoのインポートテンプレートから
レジスタ= template.Library()
register.filter @()
DEF my_func(ヴァル、ARG1):
ヴァル+のARG1リターン
:注
1.唯一のパラメータを渡し
、関数名とパラメータ2との間のスペースなしで
使用:
{%負荷のXX%}
{{名前| my_func: 'KKKK'}}
- simple_tag:
Djangoのテンプレートのインポートから
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' %'です}
register.simple_tag @()
DEF my_func(ヴァル、ARG1):
ヴァル+のARG1を返す
用法:
{%負荷のXX%}
{%my_tag 'zekai' ' 'JJJ' %'です}
2.クッキーとセッション(********************************)
原理:
-クッキーは:
クライアントのブラウザに存在しますキー-VAL(値のペア)のランダムな文字列が
サーバから返さ
{「キー」:クッキー値}
原理:
-クッキーは:
クライアントのブラウザに存在しますキー-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の値をブラックリストされているか否かを判断する
.....
ユーザ機密情報を含むキーは、サーバーに存在する
{
{「名前」:「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:ビュー(ビュー・ハンドラ)がコントローラに対応します