Djangoの学習:MySQLのデータベース接続

開発環境:

                  ウインドウズ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が定義

 

おすすめ

転載: www.cnblogs.com/daydayupup/p/11742121.html