単一のデータベースのテーブルの操作djang

13は、概要を運転されます。

照会方法:

<1>すべての():検索結果
<2>フィルタ(** kwargsから) : それはのフィルタと一致するオブジェクトが含まれ
、<3>のget(** kwargsからは) : 与えられた試合にフィルタを返します。これは、オブジェクト、およびフィルタに一致するオブジェクトが複数、またはまったくエラーをスローする場合は1つの結果だけが返されます。
<4>(** kwargsから)除外 : それは指定されたオブジェクトがのフィルタ基準に一致しない含まれている
<5> ORDER_BY(*フィールド) : 注文クエリ結果( '-id')/( '価格')

<6> ()リバース:ソートクエリ逆する以前の結果>>>最初のソートを反転する必要が
<7>カウント():クエリ(クエリセット)オブジェクトの数に一致するデータベースを返します。
<8>第():最初のレコードを返し
、<9>最後の():最後のレコードを返す
クエリセットにデータが含まれている場合、そうでない場合はFalseを返し、Trueを返す:<10>(存在)
の値(*フィールド)<11> :、特別なオブジェクトモデルをインスタンス化する一連の実行後に得られていないが、辞書反復配列ことValueQuerySet--クエリセットを返す
<12> values_list(*フィールド) : )は、値(、非常に類似していますそれはタプルのシーケンスを返し、値は、辞書配列返す
返された結果の履歴から廃棄重複:異なる<13>()

 

クエリセットオブジェクトのメソッドを返します。

すべて()

フィルタ()

除外()

ORDER_BY()

逆()

別個の()

特別なクエリセット

値()反復シーケンス辞書を返します。

values_list()は、反復の祖先配列を返します

 

特定のオブジェクトを返します。

取得する()

最初()

最終()

方法があるブール値を返します:

()が存在します

メソッドを返します。

カウント()

 

例:

モデル:

django.db 輸入モデル

#は、ここにあなたのモデルを作成します。

クラスのユーザー(models.Model):
    名前 = models.CharField(max_lengthを= 32 
    年齢 = models.IntegerField()
    register_time = models.DateField()

    デフ __str__ (自己):
         リターン " 对象的名字%sの"%のself.name
コードの表示

 

単一テーブルの操作

django.test インポートのTestCase 

ここにあなたのテストを作成壁紙。
インポートのOS
 インポートSYS 

IF  __name__ == " __main__ " 
    os.environ.setdefault(" DJANGO_SETTINGS_MODULE "" untitled_orm.settings " のインポートDjangoの
    django.setup()
    から app01 のインポートモデル

    新しいデータオブジェクトができればクエリセット無制限のポイントクエリセット方式として
    #1 models.User.objects.filter()フィルタ()COUNT().. 


    作成する作成に基づく- 
    USER_OBJ = models.User.objects.create(名= 'egon1'、年齢= 38、register_time = "2017年7月1日") 
    印刷(user_obj.register_time) 

    基于对象的绑定方法创建二
    USER_OBJ =モデル.User(名前= 'ケビン'、年齢= 30、register_time = '2019年1月1日') 
    user_obj.save() 

    日時インポート日時から
    のctime = datetime.now() 
    models.User.objects.create (NAME = 'エゴン'、年齢= 18、register_time = CTIME) 


    修改数据
    USER_OBJ = models.User.objects.filter(NAME = 'ジェイソン') 
    プリント(USER_OBJ)#<クエリセット[<ユーザー:Userオブジェクト> 、<ユーザー:Userオブジェクト>]> 

    基于对象的
    USER_OBJ = models.User.objects.filter(NAME = 'ジェイソン')。最初の() 
    プリント(USER_OBJ)#ユーザオブジェクト
    #1 user_obj.age = 18 
    user_obj.save() 

    基于クエリセット
    models.User.objects。フィルタ(名前= 'ケビン・')。アップデート(名= 'ケビン'、年齢= 66) 


    删除数据
    基于クエリセット
    RES = models.User.objects.filter(名= 'エゴン・') 
    プリント(RES) 
    models.User.objects.filter(名前= 'エゴン・')。削除() 

    基于对象
    user_ob = models.User.objects.filter(名= 'オーウェン')。最初の() 
    user_ob.delete() 

    查询数据
    1.すべての():検索結果は、[OBJ、OBJ]クエリセット
    2フィルタ(** kwargsからの)は、[OBJ、OBJ]ことクエリセット指定されたフィルタ条件に一致するオブジェクト含ま
    RES = models.User.objectsを.filter(名前=「ジェイソン」、 = 18歳) 複数の制約内に配置することができますが、ノート#フィルタはいと条件の複数の関係

    3 GET(** kwargsから)オブジェクト
    #1 に戻りますフィルタ条件に一致すると、1つの結果だけのオブジェクトがフィルタに一致するオブジェクトが複数またはエラーなしのスローされます場合は、返された
    RESを= models.User.objects.get(名=「ジェイソン」)#が推奨されていません
    印刷(RES) 

    4.exclude(** kwargsから):<クエリセットは、その[<ユーザ:ユーザオブジェクト>、<ユーザ:ユーザオブジェクト>、<ユーザ:ユーザオブジェクト>]> 
    に不一致とフィルタが含まれていますオブジェクト
    RES = models.User.objects.exclude(名= 'ジェイソン') 
    印刷(RES) 

    5.order_by(*フィールド):注文クエリ結果は、クエリセットその[OBJ、OBJ] 
    RES = models.User.objects.order_by( '年齢')昇順#デフォルト
    #の印刷(RES) 

    RES = models.User.objects。 ORDER_BY( ' -年齢') 
    印刷(RES)降順#

    #のRES = models.User.objects.order_by( '名前') 
    印刷(RES) 

    6.リバースは、()[OBJ、OBJ]クエリ結果のトランスというクエリセットフロント逆に最初のソート順で、位相を命じ
    #のRESを= models.User.objects.order_by(「名前」)。逆() 
    印刷(RES) 

    7 COUNT()は、データベースの照合クエリを返す
    #のRESの=モデルを.User.objects.count() 
    または
    RES = models.User.objects.all()。COUNT() 
    印刷(RES) 

    8.first():最初のレコードOBJ返し
    #1 。models.User.objects.all()最初の()= RESを
    #1 印刷(RES) 

    [0]#がないRES = models.User.objects.all()インデックスの値が負のサポート
    #の印刷(RES) 

    最後のデータOBJを返します。9.last()
    #1 。)(最後のmodels.User.objects.all()= RESを
    #の印刷を(RES) 

    10.は(EXISTS) :クエリセットにデータが含まれている場合、それ以外の場合はFalseを返し、Trueを返します
    #のRESを= models.User.objects.allは()EXISTS()。 
    RES1 = models.User.objects.filter(名= 'ジェイソン'、年齢= 3)。 .exists() 
    印刷(RES、RES1) 

    11値(フィールド、*):---クエリセットを返します-特別なクエリセットを、
    モデルの実行の一連の後には、持っているオブジェクトのインスタンスではなく、反復可能な辞書
    RES = models.User.objects.values( '名前'、 '年齢')#1クエリセットオブジェクトディクショナリリストセット
    #1 [{ '名前': 'ジェイソン'、 '年齢'}は、(RES)#<クエリセット印刷を、18であります]> { '名前': 'Aegon1'、 '年齢' 38である} 

    12 values_list():タプルクエリセットリストのセットを返し
    #1 models.User.objects.values_list( '名前'、 '年齢')= RESを
    #の印刷(RES) 
    <クエリセットすることを[( 'ジェイソン'、18がある)、( 'ニック'、44がある)、( 'ケビン'、66)、] 

    #の13.distincat():返された結果から重複レコードを削除し、再アウトの結果を返す、ために

    #1 )RES = models.User.objects.distinct(#クエリセット[<ユーザー:オブジェクトジェイソンの名前>、<ユーザー:オブジェクト名ニック>、]その
    #の印刷(RES) 
    RES = models.User.objects.values( '名前'、 '年齢') 
    RES1 = models.User.objects.values(「名前」、 「年齢」)。異なる()# [重いフロントデータ重複除去と同一でなければならない】

    14マジック二重下線付きクエリ<クエリセット[ OBJ、OBJ] 
    クエリより古い44歳
    #1 RES = models.User.objects.filter(= 34 age__gtです)
    #の印刷(RES) 

    <クエリセット[<ユーザーの年齢の44歳未満のユーザーのクエリ若い:オブジェクト名ジェイソン>、<ユーザ:オブジェクト名タンク>、<ユーザ:モニカAegon1>、<ユーザ:オブジェクト名ジェイソン>]> 
    RES = models.User.objects.filter(= 44であるage__lt)
    #1 印刷(RES)

    #のクエリより古い44歳
    #1 RES = models.User.objects.filter(age__gte = 44) 
    印刷(RES) 

    ユーザー名がn含むクエリ
    #のRESを= models.User.objects.filter(name__contains = ' N ') 
        RES = models.User.objects.filter(name__icontains = 'N ')#は、 ケースを無視
    #の印刷(RES) 

    jは始まるクエリのユーザ名を
    #1 RES = models.User.objects.filter(name__istartswith = 'J')
    #の印刷(RES) 

    クエリ時間が2017ユーザーに登録されている
    #1 RES = models.User.objects.filter(register_time__year = 2017)#のSQLiteのフォーマットが作成した日付に上映される
    #の印刷(RES)
コードの表示

 

おすすめ

転載: www.cnblogs.com/qingqinxu/p/11258665.html