17. CRUD操作

 

操作のモデル:

ORMフレームワークでは、すべてのモデルは、このような追加/削除などの操作を、関連します。実際には、運用データのデータベースにマッピングされています。したがってモデル操作は、データベーステーブル内の操作データです。

データベースにモデルを追加します:

現在のデータベースに追加します。まず、モデルを作成する必要があります。モデルを作成するには、単に通常のPythonオブジェクトを作成することはまったく同じ、非常に簡単です。モデルを作成した後、私たちは、Djangoが自動的にSQL文の中にこのモデルを変換し、データベースに保存されるように、モデルのsaveメソッドを呼び出す必要があります。次のようにサンプル・コードは次のとおりです。

class Book(models.Model):
    name = models.CharField(max_length=20,null=False)
    desc = models.CharField(max_length=100,name='description',db_column="description1")
    pub_date = models.DateTimeField(auto_now_add=True)

book = Book(name='三国演义',desc='三国英雄!')
book.save()

データを探します:

次のモデルを介して行われたデータを検索しobjects、目標を達成するために。

すべてのデータを検索:
ブックモデル対応するテーブル内のすべてのデータを検索するに。そして、次のサンプルコード:

books = Book.objects.all()


上記ブックモデル内のすべてのデータが返されます。

データのフィルタリング:

時間内のデータを検索し、時にはフィルタリングするためにいくつかのデータを必要とします。だから、今回は呼び出す必要があります方法を。サンプルコード:objectsfilter

books = Book.objects.filter(name='三国演义')
> [<Book:三国演义>]

# 多个条件
books = Book.objects.filter(name='三国演义',desc='test')


コールはfilter、すべてのモデルオブジェクトの状態が返されます満たしています。

単一のオブジェクトを取得します:

使用すると、filterすべての条件を満たすように結果セットを返します。時には、あなただけの条件を満たすために最初のオブジェクトを返す必要があります。あなたはgetメソッドを使用することができます。次のようにサンプル・コードは次のとおりです。

book = Book.objects.get(name='三国演义')
>> <Book:三国演义>


オブジェクトが基準を満たしていないことが分かっている場合はもちろん、それは例外がスローされます。条件を満たすために時間を見つけるために、データが存在しない場合にフィルタは、空のリストを返します。

データの並べ替え:

前の例では、データが乱れています。あなたがソートする時間を見つけるために、データ内のフィールドを使用する場合は、メソッドをORDER_BY使用することができます。次のようにサンプル・コードは次のとおりです。

books = Book.objects.order_by("pub_date")


すべての書籍が使用される場合、上記のコードでデータを抽出するpub_date小から大ソートします。あなたがソート逆転したい場合は、PUB_DATEの前にマイナス記号をすることができます。サンプルコード:

books = Book.objects.order_by("-pub_date")

データを変更します。

データを見つけた後、それを変更することができます。変更は単に、変更するオブジェクトのプロパティを見つけるために、非常に簡単ですし、このオブジェクトは修正することができ、保存メソッドを呼び出します。次のようにサンプル・コードは次のとおりです。

from datetime import datetime
book = Book.objects.get(name='三国演义')
book.pub_date = datetime.now()
book.save()

データを削除します。

データを見つけた後、それを削除することができます。データを削除することは非常に簡単です、ちょうどこのオブジェクトのdeleteメソッドを呼び出します。サンプルコード:

book = Book.objects.get(name='三国演义')
book.delete()

おすすめ

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