開発環境:
ウインドウズ10
Pythonの3.7.4
ジャンゴ2.2.6
MySQLの8.0.17
前の1を続けると:https://www.cnblogs.com/daydayupup/p/11741873.html
データベース設定
組み込みデータベースですDjangoのデフォルトsqlite3のデータベースでは、それはデータベースファイルです。SQLiteの自体はCで書かれ、そして体積が非常に小さくなっているので、したがって、多くの場合、それは様々な用途に組み込ま。Pythonの自体は、任意のプログラムをインストールするので、必要にsqlite3のを構築していないので、あなたはそれを直接使用することができます。
MySQLデータベースを接続したい場合は、それが適切なデータベースドライバモジュールをダウンロードし、seetings.pyファイルに適切な変更を行います。
まず、オープンCMD使用し、PIPダウンロードMySQLデータベースドライバモジュールは、私が使用してはmysqlclientを
mysqlclientをインストールするPIP
そして、オープン個人用サイト/ seeting.py「Ctrlキー+ F」を使用してファイルには、図に示す場合には、デフォルトではキーの組み合わせ「データベース」を、検索します。
MySQLデータベースの設定
注:データベースを事前に作成する必要があり、Djangoは自動的にデータベースを作成する助けにはなりません。あなたはsqlite3のを使用している場合はもちろん、あなたが任意の事前に設定する必要はありません。
次に、ここであなたのAPPを登録し、「INSTALLED_APPS」を検索してください。
登録APPの役割は、あなたのAPPは、他のプロジェクトで使用することができ、または自分のプロジェクトで使用するために他の人にパッケージ化して配布することができるようにすることです。
上記の他のエントリあなたのDjangoプロジェクト内のすべてのアプリケーションが使用する含まれているが、これらのアプリケーションは、定期的にプロジェクトをもたらすために便利なように、デフォルトで有効になっています。デフォルトで有効になっていくつかのアプリケーションは、少なくともデータテーブルが必要なので、あなたがそれらを使用する前に、データベース内のいくつかのテーブルを作成する必要があります。
PY manage.py移行
あなたはDjangoが作成したデータベースのテーブルを一覧表示するには、コマンドラインを使用することができます
モデルを作成します。
モデルは、実際のデータを簡単かつ明確な記述です。これは、必要なデータ・ストレージ・フィールドと動作が含まれています。Djangoは以下のDRY原則を。その目標は、あなただけが、彼らは自動的にモデルから生成されます気にしないデータモデル、およびその他の各種コードを定義する必要があるということです。
DjangoはするためのPythonのクラスを定義するモデルの特定の形式を定義するために、本実施形態の物理的モデルは、Pythonは、各クラスのクラスであり、各モデルは、データベース内のテーブルを表し、クラスデータテーブルの行を表す各インスタンスデータフィールドのクラスデータテーブルを表す各変数。Djangoのモデルでは、Pythonコードのデータベース操作とSQLクエリ言語のカプセル化を達成するために組み合わせます。つまり、あなたは、データベースを管理することはできません、SQL言語は、あなたが同じPythonのコードは、データベースを操作することができますすることはできません。
で世論調査/モデル、それぞれ二つの新しいモデル、および質問Chocie。質問や発行日を含む質問。投票数オプションとオプションのテキスト記述:選択肢は2つのフィールドが含まれています。各選択肢は、質問に関連しています。これらはPythonのクラスによって具現化され、すべてがPythonコードで書かれ、任意のSQL文を触れないでください。さて、編集しpolls/models.py
、次のように、特定のコードをファイル:
#ポーリング/モデル
django.db輸入モデルから
クラス質問(models.Model):
QUESTION_TEXT = models.CharField(MAX_LENGTHは= 200)
PUB_DATE = models.DateTimeField( '日に公開')
クラスの選択(models.Model):
質問=モデル.ForeignKey(質問、on_delete = models.CASCADE)
choice_text = models.CharField(MAX_LENGTH = 200)
の投票= models.IntegerField(デフォルト= 0)
- 上記のコードでは、各クラスは
django.db.models.Model
サブクラス。 - 各フィールドはフィールドクラスのインスタンス、例えば、文字フィールドはCharFieldですとして示される、時間フィールドDateTimeField型として表しました。これは、処理される各フィールドのDjangoのデータ型を伝えます。
- 各フィールド(例えば:QUESTION_TEXT)クラスのインスタンス変数の名前は、変数命名データベース命名形式を満たすために、従って、フィールドの名前です。
- 特定の定義フィールドのクラスのインスタンスは、必要QUESTION_TEXT MAX_LENGTHパラメータなどのパラメータを必要とします。このパラメータの有用性は、データベースの構造を定義するために使用される、データ検証のために使用されるだけでなく。
- クラスのフィールドインスタンスは、= 0 defaulなどのオプションのパラメータ、複数のオプションのパラメータである受け入れることができます。
- 最後に、我々が使用することに注意してください
ForeignKey
関係の定義を。これは、Djangoに伝え、各Choice
オブジェクトがに関連付けられているQuestion
ターゲット。多対多と一から一:Djangoは、すべての一般的なデータベースの関係をサポートしています。
アクティベーションモデル
PY manage.py makemigrationsポーリング
その後、次の出力が表示されます。
実行することにより、コマンドを、Djangoは、あなたはDjangoのモデルの変更を指示するモデルファイルへの変更を検出し、変更がとして保存されるように、マイグレーション(移行)。 makemigrations
マイグレーション(移行)はDjangoのモデル定義の変更の形で格納されている(つまり、データベース構造)。端的に言えば、移行ファイルは、あなたが行動に格納されているデータベースに変更を加えたいデータです。
私たちができるポーリング/移行/ 0001_initial.py我々だけで録音したデータの移行を表示し、それはまた、手動で変更することができます。
データ移行
次に、我々は使用移行の実際のデータ移行のデータベースにコマンドを:
PY manage.py移行
マイグレーション・コマンドすべての移行が(データベース内の特別なテーブルを作成することによって、ジャンゴ(移行)が実行されていない選択する django_migrations
の移行を行っているのを追跡するために)をし、データベース上のアプリケーション-つまり、あなたがデータベース構造を同期するためにモデルを変更上。
データの移行が発生し、中に複数のアプリケーションで使用されるようにあなたは、移行コード管理システム上のデータを提出し、それを有効にすることを可能にするために適用される2つのコマンドに分割され、これは簡単に開発するだけでなく、他の開発者に対して行うだけでなく、そして本番環境の利便性を使用しています。
以下に示すように、データベーステーブルを使用して、TEST1 MySQLのコマンドをチェックします。
これは、データ移行の成功を示しています!
データベーステーブルからも見ることができるという名前のクラス名APP名_modelsが定義。