djangoテクニック

7532 ワード

  • プロジェクトの作成:django-admin.py startproject_name
  • python manage.py helpすべてのコマンドセット
  • を表示
  • しかし、システムはappに対して約束があります.Djangoのデータベース層(モデル)を使用している場合は、django appを作成する必要があります.モデルはappsに保存する必要があります
  • python manage.py startapp app_name

  • 次のコマンドによる検証モデルの有効性:python manage.py validate
  • sqlallコマンドはデータベースにデータテーブルを作成していません.SQL文セグメントを印刷するだけです.python manage.py sqlall booksはSQL文を実行し、syncdbコマンドを実行します.python manage.py syncdb
  • syncdbコマンドは、モデルをデータベースに同期する簡単な方法です.INSTALLED_に基づいてAPPSに設定されたappはデータベースをチェックし、テーブルが存在しない場合は作成します.
  • では、syncdbはモデルの変更をデータベースに同期できないことに注意してください.モデルを変更してデータベースを更新したい場合は、syncdbは
  • を助けることができません.
  • python manage.py syncdbを再実行すると、新しいモデルを追加したり、新しいapp
  • を追加したりしていないため、何も起こりません.
  • メソッド__str__()をPublisherオブジェクトに追加するだけです.__str__()メソッドは、Pythonがオブジェクトを文字列として
  • を使用する方法を示します.
  • __str()__もモデルに動作を追加する方法を示す良い例です.Djangoのモデルは,オブジェクトにデータベーステーブルの構造を定義するだけでなく,オブジェクトの動作も定義する.__str__()は、モデルが
  • を表示する方法を知っている例です.
  • Publisher.objects.all()この行の各部分:
  • objectsは何をしていますか?技術的には、マネージャです.マネージャは、付録Bで詳細に説明します.ここでは、データテーブルに関する操作、特にデータ検索を処理することを知っています.
  • すべてのモデルはobjectsマネージャを自動的に所有します.データを検索するときに使用できます.マネージャの名前は、自分で変更できる
  • です.
  • 最後にall()メソッドもあります.これはobjectsマネージャがすべてのレコードを返す方法です.このオブジェクトはリストのように見えますが、実際にはQuerySetオブジェクトであり、データベース内のレコードのセットです.付録CではQuerySetについて詳しく説明しますが、ここではまずシミュレーションリストオブジェクトであるとします.
  • QuerySetは、データベース内のオブジェクトの集合を表します.与えられたパラメータに基づいていくつかのフィルタを構築して、この集合の規模を縮小することができる.SQL用語で言えば、QuerySetはSELECT文に相当し、フィルタはWHEREやLIMITのような限定語に相当する.1つのモジュールでは、ManagerはQuerySetsの主なソースです.これは、モジュールのデータベース・テーブル内のすべてのオブジェクトを記述できる根本的なQuerySetのようなものです.例えば、Blog.objectsは、データベース内のすべてのBlogオブジェクトを含む根本的なQuerySetである.
  • 毎回orderを使いますby()はちょっとうるさいように見えます.ほとんどの場合、いくつかのフィールドをソートするだけです.この場合、Djangoでは、モデルのデフォルトのソート方法を指定できます.
    class Meta:
      ordering = ["name"]
    
  • このordering=["name"]Djangoに提供order_が表示されていない場合はby()は、デフォルトで名前順に
  • Metaとは何ですか?
  • Djangoは、内部クラスMetaを使用してモデルを記述するメタデータを追加的に格納し、付録Bを参照し、Meta項の下で、より多くのオプション情報
  • を得る.
  • あなたのモデルの各フィールドは適切なFieldクラスのインスタンスであるべきで、Djangoはこのフィールドクラスのタイプを使用して次の内容を決定します.
  • データベース列タイプ(INTEGER、VARCHARなど).
  • Djangoのadminインタフェースで使用する部品を指定したい場合.(例:
  • )