まず、デザインモード
1.1 MVC
-
-
表示(V)、あなたが見るインターフェイスであるユーザー入力を収集するためのインタフェースを提供することに加えて、プレゼンテーションモデルです。
-
モデルとビュー間の情報の流れを制御するコントローラ(C)。プログラムロジックを表示するための情報を送信することにより、データベースからの情報、。また、モデルデータを修正することによって、ユーザから視点情報、ビューの変更によって収集。
MTV 1.2(ジャンゴ)
-
-
Tは「テンプレート」、を表すプレゼンテーション層を。ページまたは他の文書タイプに何かを表示する方法:これは、パフォーマンスに関連する決定を含んでいます。
-
Vは、「ビュー」、を表すビジネスロジック層を。Logicはアクセスモデルが含まれており、適切なテンプレートを選択:モデルとテンプレートの間のブリッジを。
第二に、 PythonスクリプトでDjangoの環境を呼び出します
輸入OS の場合 __name__ == ' __main__ ' : os.environ.setdefault(" DJANGO_SETTINGS_MODULE "、" untitled15.settings " ) 輸入ジャンゴ django.setup() #の测试代码
三、Djangoのターミナル印刷SQL文
#の設定中配置 LOGGING = { ' バージョン':1 、 ' disable_existing_loggers ' :Falseを、 ' ハンドラ' { ' コンソール' { ' レベル':' DEBUG ' 、 ' クラス':' logging.StreamHandler ' 、 }、 } 、 ' ロガー' { ' django.db。バックエンド":{ ' ハンドラ':[ ' コンソールは' ]、 ' 伝播' :真、 ' レベル':' DEBUG ' 、 } } }
四、Djangoのリクエストのライフサイクル
第五に、違いDjango2.xバージョン1.xバージョン
同じURLのre_pathと1.1のdjango2.x
パスの基本的なルール
- 山カッコ(
<>
)URLから値をキャプチャします。 - キャプチャ値は、使用したようなタイプのコンバータ(変換タイプ)を含むことができる
<int:name>
整数変数を取り込みます。Ruoguo無改質器は、もちろんを含む任意の文字列、一致する/
文字を。 - 先頭のスラッシュを追加する必要はありません。
パスコンバータ
Djangoのデフォルトのコンバータは、次の5つをサポートしています。
- STR、マッチングパスセパレータ(に加えて、
/
デフォルトで非空の文字列)外、。 - INTは、0を含む正の整数と一致します。
- スラッグ、文字、数字、バー、アンダースコアの文字列にマッチします。
- UUID、075194d3-6885-417e-a8a8-6c931e272f00としてフォーマットUUIDを、一致します。
- パスは、パスの区切り文字(/)を含む、任意の非空の文字列に一致する(しませんか?)
カスタムコンバータを登録します
いくつかの複雑なまたは多重化を必要とするために、独自のコンバータを定義することができます。Converterは、クラスまたはインタフェースである、それは三点が必要です。
regex
クラス属性、文字列型
to_python(self, value)
この方法は、値はクラス属性はregex
、文字列と一致している対応するDjangoのビュー関数への送達のために、可変のPythonの特定の値を返します。to_url(self, value)
方法、そしてto_python
逆に、値はストリング、一般的に使用される逆URL参照を返す特定の変数のPythonの値です。
栗:
クラスFourDigitYearConverter: 正規表現 = ' [0-9] {4} ' DEF to_python(自己、値): 戻りINT(値) DEF to_url(自己、値): リターン ' %04D '%値
使用するregister_converter
URLの設定に登録するには:
django.urls インポートregister_converter、パスを から。インポートコンバータ、ビュー register_converter(converters.FourDigitYearConverter、' YYYY ' ) urlpatterns = [ パス(' 記事/ 2003 / ' 、views.special_case_2003)、 パス(' 記事/ <YYYY:年> / ' 、views.year_archive)、 。.. ]
六の単純なファイルのアップロード
注目のビットのフロントエンド
1.methodがPOST指定する必要が
2.enctype形式をFORMDATAを変更する必要があります
その一時的にバックエンドに注意してください。
1.コメントアウトcsrfmiddleware中間プロファイル
2. request.FILESにより、ユーザーのポストによってアップロードされたファイルのデータを取得します
プリント(request.FILES) プリント(型(request.FILES.get(' FILE_NAME ' ))) FILE_NAME = request.FILES.get(' FILE_NAME ' ).nameの から django.core.files.uploadedfile インポートInMemoryUploadedFile オープン(FILE_NAMEと、' WB ' Fなど) のための I における request.FILES.get(' FILE_NAME ' ).chunks(): f.write(I)
七、選択肢
モデルテーブルで定義:選択=((0、 'M')、(1、 'M')、(2) '不明')
フィールドで使用しています:性別= models.IntegerField(選択肢=選択)
テキストから見た図に相当する層:性別= author.get_gender_display()