04-モデルクラス

ORMフレームワーク:オブジェクト - リレーションシップ - マッピング

オブジェクト指向言語のプログラムが自動的にリレーショナルデータベースにオブジェクトを永続化。本質的に他の形態の1つの形式からのデータを変換する
Oオブジェクトのオブジェクト・クラスを表し
、Rは、リレーショナルデータベーステーブルのリレーション関係を表す
Mは、その役割がOとRとの間の接触を確立することで、マッピングのマッピングを表す
クラスおよびオブジェクトによってSQL文を記述することなく、データベーステーブルを操作する
データテーブルクラスに対応し、最大で唯一のクラスとオブジェクトによって、データテーブル上で動作することができるORMフレームワークを構築していジャンゴに、あなたはまた、モデルクラスを設計することができますデータベース内のテーブルを生成します

モデルクラス

1.デザインモデルクラス

models.pyはmodels.Modelを継承しなければなりません書きます

from django.db import models

# Create your models here.

class BookInfo ( models.Modele ): """ 图书模型类 1.图书名称,CharField 说明是一个字符串,max_length字符串的最大长度,与数据库表对应 2.出版日期,DateField是一个日期类型 数据里表里还有一个主键id,id在Django里会自动生成,不需要定义 """ btitle = models.CharField ( max_length=20 ) bpub_date = models.DateField () 
モデルクラステーブルによれば2、
  • 使用して、移行コマンドパイソンモデルクラスファイルが生成された移行ファイルを生成しますmanage.py  makemigrationsを  

  • テーブルを生成するために、移行ファイルを実行し、Pythonはコマンドを使用manage.pyの 移行を  

Djangoプロジェクトのデータベースは、デフォルトのsqlite3ので使用され、db.sqlite3を生成しますプロジェクトの下で、どのように開くために、設定で見ることができますか?

1)安装
   sudo  apt-get  install sqliteman

2)输入命令sqliteman 回车就会打开 3)File--open,选择db.sqlite3文件打开

モデルクラス生成されたテーブルは、アプリケーション名は、テーブルのクラス名モデル_小文字の名前です。

モデルベースの操作欠失データベーステーブルを変更して再検索によれば3、

シェル環境へのプロジェクト
コマンド:Pythonのmanage.py  シェル  

  • テーブルにデータを挿入します

booktest.modelsからのBookInfo#アプリケーション名、クラス名のインポート
クラスオブジェクトのBookInfo定義B =のBookInfo()#を
B位b.btitle =プロパティ「レッドの夢」は、定義したオブジェクトを割り当てる
日時インポート日から
1990,1(b.bpub_date = DATE 1)の#define発行日
b.save()

  • データルックアップテーブルに

BookInfo.objects.get = B2(ID = 1)
型(B2)
を入力レッド#のb2.btitle表示ドリーム

  • データベーステーブルを更新します

b2.bpub_date =日付(1990,10,10)
b2.save()

  • データを削除します。

b2.delete()

4、クラス関係およびリレーショナルクエリモデル

(複数のテーブル間の関連付け)

# 人物类
# 人物名 hname
# 性别 hgender # 年龄 hage # 关系属性 hbook 建立图书类与人物类之间的一对多的关系 的属性 class HeroInfo(models.Models): hname=models.CharField(max_length=20) # default 指定默认值,False代表男 hgender=models.BooleanFiled(defalut=False) hbook=models.ForeignKey('BookInfo') # 建立两表之间的关联 

- >ファイル移行生成-生成>マイグレーションファイルリスト、テーブル内で発生HBOOK、対応するフィールドhbook_id、固定フォーマットのテーブル:名称関係は_id属性
- >インサートデータ

インポートのBookInfoのbooktest.models HeroInfo、から
Bは、のBookInfoを=()
b.btitle = 'レッドの夢'
日時インポート日から
b.bpub_date = DATE(1990,1,1)
b.save()
H = HeroInfo()
h.hname = '林'
h.hgender = Trueの
h.hbook_id = B#1のIDブックは、テーブルの主キーを指定
h.save()
データの増加H2 = HeroInfo()#を
h2.hname = 'フィクション'
h2.hbookのB =
H2を.SAVE()

本のテーブルオブジェクトの文字情報に基づいてクエリ関連書籍

b.heroinfo_set.all()

クエリテーブルのすべての内容

HeroInfo.objects.all()

おすすめ

転載: www.cnblogs.com/wysk/p/11295684.html