- またはMVC MVCフレームワークは、重要な部分が含まれ、データモデルとデータベースのデカップリングを実装ORMは、すなわちデータモデルの設計は、データベースを容易に交換することができ、簡易な構成により、特定のデータベースに依存する必要はありませんが、このポールデータベースが非効率性によって引き起こされる変化に直面する必要がないため、大、開発者の作業負荷を軽減
- 短いのためのORMは、「 - - リレーショナルマッピングオブジェクト」です。(将来はSQLAlchemyのを学びます、と彼はのようだったが、Djangoは他の人が使用するための独立したのORMない、SQLAlchemyのより強力ものの、他の人には不可能)(ORMと呼ばれる、オブジェクト関係マッピング)
- MySQLデータベースを使用する場合:クラスとオブジェクト---> SQL ---> pymysql ---> MySQLサーバ--->ディスク、ORM実際には、SQL文に文法翻訳エンジンクラスオブジェクト。
SQL およびORM の比較:
SQL ステートメントの操作:
テーブルを作成します。
テーブルの作成(ブック
ID int型主キーAUTO_INCREMENT、
名前のCHAR(20 )nullではありません、
価格フロート(8 、2 )nullではありません、
日付日付nullではありません、
パブリッシャVARCHAR(32 )nullではありません
)
表の記録動作:
で:
INSERT INTOブック値(1 、「完璧な人生」、10.00 、「2019年5月24日」、 " 家を出版の未来「)。
削除:
削除する書籍のid = 1 ;
変更します。
更新本セット価格 = '20 .00' ID = 1 ;
チャールズ:
選択* から本を。
選択* から書籍のid = 1 ;
ORMのデータベースの操作:
アプリのアプリケーションはmodels.pyのクラスを定義します。
django.db 輸入モデル
#ORMの対応表の属性フィールドで定義されたテーブル名に対応するクラス
#ORM コールの異なるタイプのモデルクラスは制約が指定されていない、定義されたヌルデフォルトはNULLではありません、文字列の最大長を指定する必要があります
#ORM なし主キーは、フィールドが自動的に作成されて作成され、指定されたID 主キーを使用することができ、ID やPKの使用を
クラスブック(models.Model):
#IDは= models.AutoField(PRIMARY_KEY = TRUE)
名前= models.CharField(max_lengthを= 20 、ヌル= 真)
価格= models.FloatField()
日付= models.DateField()
パブリッシャ= models.CharField(MAX_LENGTH = 32 )
作成し実行します。
Tools--->Run managy.py Task:
命令:makemigrations ---> migrate
操作数据库表(在view视图中定义函数操作,先导入app应用中的models.py模块):
增:
# 第一种:实例化一个model对象,然后调用对象的save方法
obj=models.Book(name="完美人生",price=10.00,date='2019-05-24',publisher='未来出版社')
obj.save()
# 第二种:直接调用objects控制器的create方法(常用)
models.Book.objects.create(name="完美人生",price=10.00,date='2019-05-24',publisher='未来出版社')
删:
models.Book.objects.filter(id=1).delete()
改:
models.Book.objects.filter(id=3).update(price=20)
查(get查询只能是有且只有一条记录符合查询结果,多或少都报错):
models.Book.objects.all()
models.Book.objects.filter(id=1) /models.Book.objects.get(id=1)
ORM对应关系:
类--------------表
类对象-----行记录
属性---------表字段