12.ORMモデル

 

ORM作成するためのモデルとマップ:

より多くのプロジェクトとして、書き込みネイティブSQLの仕方によってコード内のSQL文の数が多いだろうし、疑問が生じます:

  1. 複数のSQL文のリサイクル率は、コードより長く、より複雑なSQL文の条件高くありません。多くの類似したSQL文が表示されます。
  2. 多くのSQL文がデータベースを変更する必要がある場合、ロジックを変更する必要があり、戦いのうち、ビジネスロジックであり、SQL文にいくつかの変更を欠場するのは非常に簡単になります。
  3. SQLを書くときに、セキュリティ上の問題を見過ごすやすいウェブは、将来のために問題を引き起こします。SQLインジェクション。

完全な名前はObject Relational Mapping、中国と呼ばれる对象关系映射、我々はORMを介してデータベースクラスの道の操作を経るのではなく、ネイティブのSQL文を書くことができます。操作に対応するオブジェクトのORM動作の実装では、属性フィールドとして、例えば、カテゴリに行をテーブルにマッピングすることにより、最終的にネイティブデータベースステートメントに変換されます。使用にはORM多くの利点があります:

  1. 使いやすさ:使用ORMデータベースの開発を行うと効果的に、より直感的かつ明確なモデルを書き出す、繰り返されるSQL文の確率を減らすことができます。
  2. パフォーマンスの小さな損失:ORM基本的なデータベース操作命令に変換するには、いくつかのオーバーヘッドを持っています。実用的な観点からは、このパフォーマンスの損失は限りパフォーマンスの損失よりもはるかに大きくない厳しい性能の要件、開発効率を考慮すると、コードの可読性、メリットがあるので、(5%未満)が小さいですそしてプロジェクトより明らかな効果も大きいです。
  3. 柔軟性を設計します。あなたは簡単に複雑なクエリを書くことができます。
  4. ポータビリティ:Djangoは人気のMySQL、PostgreSQLとSQLiteのを含む複数のリレーショナルデータベースエンジンをサポートし、基礎となるデータベースの実装をカプセル化します。あなたは非常に簡単にデータベースを切り替えることができます。

ORMモデルの作成:

ORMモデルは、一般的に配置されているファイル。それぞれが独自のモデルを持つことができます。そして、もしあなたがデータベースにマップするモデルは、これは配置しなければならない中で真ん中のインストール。以下は、本の書き込みが簡単であるモデルを。次のようにサンプル・コードは次のとおりです。appmodels.pyappappsettings.pyINSTALLED_APPORM

from django.db import models
class Book(models.Model):
name = models.CharField(max_length=20,null=False)
author = models.CharField(max_length=20,null=False)
pub_time = models.DateTimeField(default=datetime.now)
price = models.FloatField(default=0)

それは、モデルを定義する上で。このモデルは、から継承されdjango.db.models.Modelますが、モデルデータベースにマップしたい場合は、このクラスから継承しなければなりません。このモデルは、後でデータベースにマッピングされ、テーブル名はのためのモデルの小文字の名前ですbookこの表では、一方が4つのフィールドは、存在しname、フィールドが保存され、ブックの名前であるvarcharもはや20文字以下の種類、および空にすることはできません。2番目のフィールドには、著者の名前のタイプでもあるvarcharタイプ、20以上の長さ以上ではありません。第三は、データ型があり、発行日であるdatetimeデフォルトは時間この本を保存することで、タイプ。第五は、この本の価格です浮動小数点型です。
私たちが書いていないフィールドには、それが主キーでもあり、id中にdjangoモデルが主キーを定義していない場合、それは自動的に自動増加が生成されます、int主キーの種類を、主キーの名前が呼ばれていますid

データベースへのマッピングモデル:

ORMモデルは、次の手順をまとめ、データベースにマッピングされている:
1. settings.py構成が良いですがDATABASES、良いデータベース関連の設定。
2. appmodels.pyから継承しなければならない良いモデルの定義django.db.models
3.これがされますappに追加中。コマンドライン端末で、4は、配置されているプロジェクトへのパスを入力し、コマンドを実行して、マイグレーション・スクリプト・ファイルを生成します。5.また、コマンドラインで、コマンドを実行するスクリプトファイルをデータベースにマッピングされている移行します。settings.pyINSTALLED_APP
python manage.py makemigrations
python manage.py migrate

おすすめ

転載: www.cnblogs.com/ys-python/p/11266149.html