:(テンプレートの構文はわずか約2例) 1 :{{OBJ}}関連する変数 2:{%のための私でリスト%}論理的に関連した {%ENDFOR%} 今日の内容: ルートを作成します。ルートが新たに作成されたレジスタ設定に行かなければなりません 作成:python.manage.py startappののapp02の 登録:1 に.app(サポートは省略) 2 .app02.apps.App01Config(フルネーム) 、Djangoのプロジェクトを開始Djangoプロジェクトで唯一のポートを占有することを確認して、そうでない場合は簡単にバグにつながる のユーザーURL内のリソースへのアクセスURLのみがリソースを開いて、あなたは(にアクセスすることができ ***** ) すべてにデフォルトテンプレートフォルダにHTMLファイルを 静的ファイル:フロントエンドのフレームワーク、写真、CSS、JS ..下の静的フォルダ内のデフォルト デフォルトのサブフォルダが作成した静的なフォルダ 現在のウェブサイトのスタイルファイルが:CSSフォルダ のjsフォルダ:現在のWebサイトのjsファイル のフォルダをのimg:現在のサイトのすべての画像ファイル 静的ファイルを設定するには: 1 .STATICFILES_FIRS = [ os.path.join(BASE_DIR、' 静的' ) 2 .STATICFILES_FIRS = ( os.path.join(BASE_DIR、' 静的' )、 ) 注:1 。リソースを手動で、訪れることができるように限り、あなたが特定の文書に静的なフォルダパスを入力すると、ユーザーに露出した端されている 2 .STATIC_URLを= 「/静的」での静的フォルダのみの代わりに、接頭辞をインターフェース名前 3 。静的テキストとの間の動的解像度、ダイナミックアクセスポート浅い酔っ {%負荷静的%} <リンクREL = "このスタイルシート" HREF = " %{ 'ブートストラップ3.3.7-DIST / CSS / bootstrap.min.cssに' %静的} " > <SCRIPT SRC = " ブートストラップ上のブートストラップ3.3.7-DIST / JS /上{%静的」。 min.js'%} " > </ SCRIPT> キー: ***** Pythonのmanage.py makemigrationsは:すべてのAPPへの移行スクリプト(データ移行レコード)を生成するデフォルトが Pythonには移行をmanage.pyの: 移行が行わ: 1 。 SQL文に関連する移行スクリプトの翻訳、データベース内のSQL文を実行します。 2 。SQL文は問題なく実行された場合、それはdjango_migrationsにレコードに移行スクリプト名になります。 移行スクリプトを移行するかを決定する方法を実行する必要があります: 1つの +。比較のコード移行スクリプトおよびデータベースマイグレーション・スクリプトdjango_migrations、データベースで見つかった場合、この移行スクリプトなしでは、マイグレーション・スクリプトを実行します。 これらの2つのコマンドは、デフォルトでは、すべてのモデルに操作したり、ファイルに最近の変更を移行することを、グローバルで呼び出します。あなたは一部のアプリを操作したい場合は、その後の名前のアプリを追加する必要があります: フォームがデフォルトのフォームGE(URLのあるデータ)モード要求、ポストの方法によって改変することができる (注)にポストした後、設定で構築された中間CSRFを注入する必要性から、 ポストは、Djangoはランダムな文字列CSRFがあるかどうかをチェックする際にデータを提出し、場合。しません与えられた #' django.middleware.csrf.CsrfViewMiddleware ' 、 EG:HTTP:// 127.0.0.1:8000/login/?username=lina&password=123 治療ビュー機能: モード1: IF request.method = = 「GET 」: 印刷(request.method)#様式および遠位要求文字列を取得することができるが、すべて大文字である リターンレンダリング(リクエスト、「login.htmlと」) ELIFのrequest.methodリターン== ' POST ' : )HttpResponse(「弟を得る」) 第二の方法: IF == request.method 「POST 」: リターンのHttpResponse(「来て赤ちゃんが」) を返す(要求、レンダリング「login.htmlと」) ビュー機能正常に処理されます:注要求取得 前のデータを取得するために: request.method取得要求モードを GET: (大辞書に似た)データを取得`` request.GET``は、遠位取得申請 値:値がリストである :. `` request.GET``モードのget(「XXX 」 `` request.GET`` .getlist(' XXX ') 第二の方法: `` request.GET`` [ 「XXX 」] 注:1つのに.getのデフォルトのデータは、最後のリストの取得 2つの完全なリスト取り出します.getlistデータ 3を強くします。リストには、エラーのないデータとなり、第二のアプローチを使用することをお勧め POST (それは大きな辞書のようなものです)request.POSTデータ収集フロントエンドポスト提出 値 request.POST。GET(「ユーザ名」)#を値がリストであるが、しかし、デフォルトのリストは、ちょうど最後の要素を取る #は強くあなたが括弧の中にフォームの値を使用することをお勧め しますが、直接(すべてを一覧表示したい場合は# ****** ) request.POST.getlist("趣味「) 構成データベースを: デフォルトのDjangoのSQLiteのデータベースとして、以下の2つのステップを実行するために、他のデータベースを使用して、 1つの変更設定。 DATABASES = { 」デフォルト「{ 」ENGINE 「:」django.db.backends.mysql ' 、 ' NAME ':' FEI ' 、 ' HOST ':' 127.0.0.1 ' 、 ' PORT ':3306 、 "USER ":' ' 、 ' PASSWORD ':' 678 666 ' 、 ' CHARSET ':' UTF8 ' } } 2。プロジェクト名/で使用してデータベースに接続できるアプリケーションファイル名__init__ pymysql、代わりのMySQLdb インポートpymysql pymysql .install_as_MySQLdb() 注:キーキャップのペアに対するk、V kの設定が ORMをDJANGO:オブジェクト・リレーショナル・マッピング・ クラス ----------> 表 オブジェクト --------> 記録 対象属性 ---> に対応するフィールドの値 モデルクラス:クラスM(models.Model): IDルート Models.AutoField =(PRIMARY_KEY = TRUE) 、ユーザ名 = models.CharField(MAX_LENGTH = 255 ) パスワード = models.IntegerField() 注:1 。主キーフィールドを書き込むことはできませんDjangoのORMでは、Djangoはあなたが作成するのに役立ちます 2を自分で。作成し、Djangoはあなたが作成するのに役立ちません 3 .charfieldあなたはパラメータがMAX_LENGTH指定しなければならない 4つの.modelsは変更される場合があります後のデータを、あなたはPythonのmanage.pyの移行でのpython manage.pyのmakemigrationsを実行する必要があるが、両方が不可欠である アドオンテーブルのフィールド削除チェック: によって: 。フィールドは、新規に設定されているデフォルト値 のaddr = models.CharField(= MAX_LENGTH 32、デフォルト = 「中国」) 2 新しいフィールドにはnullに設定されています。 年齢 = models.IntegerField(ヌル = TRUE)#このフィールドはnullにできます 削除を:このフィールドモデルはコメントアウトしてupdateコマンドを実行 注:1 。後にすべて実行さに対応するすべてのデータフィールドを削除 2が使用されていません。 (本当の意味での*******を削除注意して) データを変更して再検索への追加や削除: 検索: ファーストモデルモジュールからapp01インポートモデル の方法の検索: 1 .models.User.objects.all() 2。 。models.User.objectsはGET(= XXX XXX) 3。 .models.User.objects.filter(= XXX XXX) 4。 .models.User.objects.filter(= XXX XXX).fist() 注:1データ・オブジェクト自体を取得するために.get方法エラーは直接によって推奨されていない場合、クエリ条件が存在しない 2 .filter方法クエリが存在しない場合、エラーなくなり、リストを取得し、オブジェクト自体の中のデータのリストを、それが空のリストを返します; フィルタ支持体の複数のパラメータ、およびパラメータの関係は 3。.ALL方法すべてのデータオブジェクトを直接対応するSQL文の内部ビューのクエリ点をクエリセットを得ることができるチェックするために 操作されるオブジェクトのリストとしてクエリセット、インデックスサポート(のみ肯定インデックス番号負サポートしていない)、支持部(新しいクエリセットオブジェクトを切り出し) 4 .filter()FISTは、この勧告にデータオブジェクトのリストを取得する。 キー: インデックス値でリストがないとき;データときに訴えるであろう その内部メカニズムのどれが最適化されていない最初の値はしかし、内部指標値に応じてであるが、データはエラーが返されません :によって 方法1.models.User.objects.create(ユーザ名 =名、パスワード= パスワード) 2 .user_obj = models.User(ユーザ名=ユーザ名、パスワード=パスワード) user_obj.save()は ID削除)によれば、データIDを削除するために、正面から得る:(削除 models.User.objects.filter(条件).delete() 変化:(ユーザがページにレンダリングすることができ、修正されるべきデータを識別します修飾は、修飾された後端部)を通過する 1。models.User.objects.filter(条件).Update()。 2 .edit_obj.username = ユーザー名 edit_obj.password = パスワード edit_obj.save() 注:1 取る.filterリストであることを、彼は同様のサイクルのために、一度にすべてを変更するバッチ操作に属している 2。、再び非常に低い効率をすべての変更のすべてのフィールドを完了するために開始します。