ORM作成するためのモデルとマップ:
より多くのプロジェクトとして、書き込みネイティブSQLの仕方によってコード内のSQL文の数が多いだろうし、疑問が生じます:
- 複数のSQL文のリサイクル率は、コードより長く、より複雑なSQL文の条件高くありません。多くの類似したSQL文が表示されます。
- 多くのSQL文がデータベースを変更する必要がある場合、ロジックを変更する必要があり、戦いのうち、ビジネスロジックであり、SQL文にいくつかの変更を欠場するのは非常に簡単になります。
- SQLを書くときに、セキュリティ上の問題を見過ごすやすいウェブは、将来のために問題を引き起こします。SQLインジェクション。
蛇
完全な名前はObject Relational Mapping
、中国と呼ばれる对象关系映射
、我々はORMを介してデータベースクラスの道の操作を経るのではなく、ネイティブのSQL文を書くことができます。操作に対応するオブジェクトのORM動作の実装では、属性フィールドとして、例えば、カテゴリに行をテーブルにマッピングすることにより、最終的にネイティブデータベースステートメントに変換されます。使用にはORM
多くの利点があります:
- 使いやすさ:使用ORMデータベースの開発を行うと効果的に、より直感的かつ明確なモデルを書き出す、繰り返されるSQL文の確率を減らすことができます。
- パフォーマンスの小さな損失:
ORM
基本的なデータベース操作命令に変換するには、いくつかのオーバーヘッドを持っています。実用的な観点からは、このパフォーマンスの損失は限りパフォーマンスの損失よりもはるかに大きくない厳しい性能の要件、開発効率を考慮すると、コードの可読性、メリットがあるので、(5%未満)が小さいですそしてプロジェクトより明らかな効果も大きいです。 - 柔軟性を設計します。あなたは簡単に複雑なクエリを書くことができます。
- ポータビリティ:Djangoは人気のMySQL、PostgreSQLとSQLiteのを含む複数のリレーショナルデータベースエンジンをサポートし、基礎となるデータベースの実装をカプセル化します。あなたは非常に簡単にデータベースを切り替えることができます。
ORMモデルの作成:
ORM
モデルは、一般的に配置されているファイル。それぞれが独自のモデルを持つことができます。そして、もしあなたがデータベースにマップするモデルは、これは配置しなければならない中で真ん中のインストール。以下は、本の書き込みが簡単であるモデルを。次のようにサンプル・コードは次のとおりです。app
models.py
app
app
settings.py
INSTALLED_APP
ORM
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. app
中models.py
から継承しなければならない良いモデルの定義django.db.models
。
3.これがされますapp
に追加中。コマンドライン端末で、4は、配置されているプロジェクトへのパスを入力し、コマンドを実行して、マイグレーション・スクリプト・ファイルを生成します。5.また、コマンドラインで、コマンドを実行するスクリプトファイルをデータベースにマッピングされている移行します。settings.py
INSTALLED_APP
python manage.py makemigrations
python manage.py migrate