Python
 Computer >> コンピューター >  >> プログラミング >> Python

Djangoモデルでピクルスフィールドを作成する


PythonのPickleは、主にPythonobject構造のシリアル化と逆シリアル化に使用されます。つまり、Pythonオブジェクトをバイトストリームに変換してファイル/データベースに保存したり、セッション間でプログラムの状態を維持したり、ネットワーク経由でデータを転送したりするプロセスです

この記事では、ピクルスオブジェクトを保存するDjangoフィールドを作成する方法を説明します。 models.pyでのみ機能します とDjangoシェル

まず、 django-picklefieldをインストールします パッケージ-

pip install django-picklefield

models.py内 −

from django.db import models
from picklefield.fields import PickledObjectField

# Create your models here.
class new_model(models.Model):
   args = PickledObjectField()

ここでは、モデルを作成し、ピクルを追加しました フィールド。

それが機能するかどうかを確認しましょう。ターミナルで"pythonmanage.pyshell"を実行します 次のように入力します-

from myapp.models import *
obj=new_model(args=['fancy', {'objects': 'inside'}]).save()
new_model.objects.all()

シェルを実行し、pickleオブジェクトを格納できる新しいモデルインスタンスを作成します。そこに保存されているオブジェクトはすべてピクルスに変換されます オブジェクト。

モデルを保存するには、次のように記述します-

from django.http import HttpResponse
def my_view(request):
   Object=new_model(args=['fancy',{'name': 'ath'}])
   Object.save()
   return HttpResponse("Object saved")

ピクルスを追加できます オブジェクトまたはこのフィールドでピッケルできるもの。

出力

In [4]: new_model.objects.all()
Out[4]:<QuerySet [<new_model: new_model object (1)>]>

  1. DjangoでMoneyフィールドを追加するにはどうすればよいですか?

    場合によっては、給与、手数料、収入など、お金に関連するデータをWebサイトに追加する必要があります。 Djangoは整数フィールドを提供しますが、多くの場合、それは私たちが望むようには機能しません。したがって、お金のフィールドを処理するために、モデルにお金のフィールドを追加する3番目のパッケージライブラリを使用できます。 プロジェクトとアプリを作成し、 MoneyFieldDemoという名前を付けました およびmyapp。 URLなどの基本的な設定を行います およびINSTALLED_APPS。 はい、ライブラリをインストールします- pip install django-mone

  2. DjangoモデルにJSONフィールドを追加する

    この記事では、DjangoモデルにJSONフィールドを追加する方法を説明します。 JSONは、データをキーと値の形式で保存するための単純な形式です。中括弧で書かれています。多くの場合、開発者のWebサイトでは、開発者データを追加する必要があり、そのような場合はJSONフィールドが役立ちます。 まず、Djangoプロジェクトとアプリを作成します。 INSTALLED_APPSにアプリを追加したり、URLを設定したり、基本的なモデルを作成したり、そのフォームをHTMLファイルにレンダリングしたりするなど、すべての基本的なことを行ってください。 例 django-jsonfieldをインストー