高度なPython Shellを使用してデータを操作する
3276 ワード
AdminサイトがUIを使用してデータを容易に管理できる場合、Shellデータ処理は、複雑な条件を検索するなど、より多くのデータ管理コマンドを提供することができる.
したがって,複雑なデータを扱う場合やWebブラウザ接続を必要としない場合には,通常Shellを用いてデータを扱う.
python manage.pyshellコマンドでPython shellを起動します.
FishelコマンドもFishen Shellですが、Fishen Shellとの違いはmanageです.pyモジュールで定義したDJANGO SETTINGS MODULEプロパティを使用して、mysite/設定を事前に行います.pyモジュールをインポートします.
テーブルはレコードの集合と呼ぶことができ、ライブラリ内のORMはこれらのテーブルの構造をクラスと表す.クラス内のオブジェクトの作成=テーブル内のレコードの作成
フィールド値を指定してテーブルにレコードを作成してオブジェクトを作成し、save()メソッドを呼び出します.save()コマンドは実行前にメモリのみで変更され、save()コマンドはSQL用語のINSERT文を内部で実行します.
Querysetオブジェクトを使用してDBからデータを問合せます.QuerySetはDBテーブルから抽出したオブジェクトの集合である.QuerySetは、フィルタを使用してQuerySetのアイテムから条件を満たすレコードを再抽出します.SQL用語では、QuerySetはSELECT文字に対応し、フィルタはWHERE節に対応する.
コレクションとは?
複数のオブジェクトを集約し、各オブジェクトを同じ方法で処理するデータ構造.
クエリー結果を含むQuerySetを取得するには、objectsオブジェクトを使用します.objectsオブジェクトは、テーブル情報を含むオブジェクトです.フィルタ()は、所定の条件を満たすオブジェクトを含むQuery Set を返す. exclude():与えられた条件を満たすオブジェクト以外のQuery Set を返す.
これらのQuerySetメソッドはまたQuerySetセットを返すので、チェーン呼び出しを行うことができる.
既存のオブジェクトのフィールド値を変更しても、フィールド属性値を変更しsave()メソッドを呼び出すことができます.SQL用語はUPDATEに相当します.
pub dateが2005のすべてのオブジェクトを削除
すべてのレコードを表示するなど、簡単なクエリーの実践.
filter()関数などを使用して様々な条件をクエリーし、1:N関係で接続するテーブル角や必要な操作を練習します.
出典:Djangoで学ぶPythonネットワークプログラミング(ベース)-金錫勲
したがって,複雑なデータを扱う場合やWebブラウザ接続を必要としない場合には,通常Shellを用いてデータを扱う.
python manage.pyshellコマンドでPython shellを起動します.
FishelコマンドもFishen Shellですが、Fishen Shellとの違いはmanageです.pyモジュールで定義したDJANGO SETTINGS MODULEプロパティを使用して、mysite/設定を事前に行います.pyモジュールをインポートします.
テーブルはレコードの集合と呼ぶことができ、ライブラリ内のORMはこれらのテーブルの構造をクラスと表す.クラス内のオブジェクトの作成=テーブル内のレコードの作成
Create
フィールド値を指定してテーブルにレコードを作成してオブジェクトを作成し、save()メソッドを呼び出します.save()コマンドは実行前にメモリのみで変更され、save()コマンドはSQL用語のINSERT文を内部で実行します.
Read
Querysetオブジェクトを使用してDBからデータを問合せます.QuerySetはDBテーブルから抽出したオブジェクトの集合である.QuerySetは、フィルタを使用してQuerySetのアイテムから条件を満たすレコードを再抽出します.SQL用語では、QuerySetはSELECT文字に対応し、フィルタはWHERE節に対応する.
コレクションとは?
複数のオブジェクトを集約し、各オブジェクトを同じ方法で処理するデータ構造.
クエリー結果を含むQuerySetを取得するには、objectsオブジェクトを使用します.objectsオブジェクトは、テーブル情報を含むオブジェクトです.
>>> Question.objects.all() # 'Question테이블.레코드들.모두' 라고 해석하면 된다.
すべてのレコードではなく、特定のレコードのみを検索する場合は、filter()メソッドとexclude()メソッドを使用します.これらのQuerySetメソッドはまたQuerySetセットを返すので、チェーン呼び出しを行うことができる.
>>> Question.objects.filter(
question_text__startswith='What'
).exclude(
pub_date__gte=datetime.date.today()
).filter(
pub_date__gte=datetime(2005, 1, 30)
)
要素が1つしかないと判断した場合、get()メソッドを呼び出すことができます.呼び出し結果はQuerySetではなく、オブジェクトです.>>> one_entry = Question.objects.get(pk=1)
また、Pythonの配列スライド構文を使用して、QuerySet要素の数を制限することもできます.SQL用語はOFFSET、LIMIT節に相当する.実行結果は、QuerySetではなくリストを返します.>>> Question.objects.all()[:5]
>>> Question.objects.all()[5:10]
>>> Question.objects.all()[:10:2]
Update
既存のオブジェクトのフィールド値を変更しても、フィールド属性値を変更しsave()メソッドを呼び出すことができます.SQL用語はUPDATEに相当します.
>>> q.question_text = 'What is your favorite hobby ?'
>>> q.save()
複数のオブジェクトを一度に変更する場合はupdate()メソッドを使用します.>>> Question.objects.filter(pub_date__year=2007).update(question_text='Everything is the same')
Delete
pub dateが2005のすべてのオブジェクトを削除
>>> Question.objects.filter(pub_date__year=2005).delete()
Questionクラスのすべてのオブジェクト、すなわちQuestionテーブルのすべてのレコードを削除>>> Question.objects.all().delete()
投票アプリケーションデータ実験
すべてのレコードを表示するなど、簡単なクエリーの実践.
filter()関数などを使用して様々な条件をクエリーし、1:N関係で接続するテーブル角や必要な操作を練習します.
出典:Djangoで学ぶPythonネットワークプログラミング(ベース)-金錫勲
Reference
この問題について(高度なPython Shellを使用してデータを操作する), 我々は、より多くの情報をここで見つけました https://velog.io/@jusung-c/장고-파이썬-쉘로-데이터-조작하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol