PythonのORMフレームワークであるDjango ORMの詳細説明
Django ORM は Python の古典的な ORM フレームワークであり、Django Web フレームワークの一部であり、データベース操作に便利な方法を提供します。 ORM は Object Relational Mapping の略で、リレーショナル データベースのテーブルを Python のクラスにマッピングできるため、開発プロセスが簡素化され、開発効率が向上します。この記事ではDjango ORMについて詳しく紹介します。
I. ORM の基本概念
ORM は、オブジェクトをリレーショナル データベースにマッピングする技術であり、主に次の 3 つの機能を実装します。データベースは Python のクラスにマッピングされます
- データベースのフィールドは Python の属性にマッピングされます
- データベースのレコードは Python のインスタンスにマッピングされます
- メインORM の利点は、繰り返し SQL ステートメントを作成する開発者の時間と作業負荷を軽減できること、また SQL ステートメントの調整や変更によって発生するエラーを削減できることです。
シンプルで使いやすい: Django ORM の API は次のとおりです。非常にシンプルで、マスターして使用するのも簡単です。
- 豊富な API: Django ORM は、追加、削除、変更、クエリなどの一般的なデータベース操作を完了するための豊富な API を提供します。また、高度なクエリや集計クエリなどの操作もサポートしています。
- 優れたスケーラビリティ: Django ORM は、Django REST フレームワーク、Django-Oscar などの他のサードパーティ ライブラリとシームレスに統合できます。
- 自動マッピング: Django ORM は自動マッピングをサポートしています。開発者はデータベース テーブルの構造を定義するだけで、対応する Python クラスが自動的に生成されるため、開発プロセス中に繰り返されるコードの量が削減されます。
- III. Django ORM の使用方法
Django のインストール
- 最初に Django をインストールする必要があり、pip を使用してインストールできます。
pip install Django
モデルを定義する
- Django ORM を使用する場合は、最初にモデル クラスを定義する必要があります。モデル クラスは、Python のクラスであり、データ テーブルとデータ テーブルの他の部分 メタデータ (テーブル名、インデックスなど)以下は簡単なモデル クラス定義です:
from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=50) pub_date = models.DateTimeField()
models
モジュールを使用して、Book データ テーブルという名前のクラスを定義します。これには、
title、
author、
pub_date の 3 つのフィールドが含まれます。
max_length は文字列型フィールドの最大長を指定するために使用され、
DateTimeField は時間型フィールドを格納するために使用されます。
データベース テーブルの作成
- モデル クラスの定義が完了したら、移行によってデータベース テーブルを生成する必要があります。 Django ORM には自動移行機能が用意されており、次のコマンドを実行するだけでデータ テーブルを生成できます:
python manage.py makemigrations python manage.py migrate
Book
テーブルが作成され、テーブル構造は定義されたモデルクラス。CRUD 操作
- a. レコードの作成
from datetime import datetime book = Book(title='Django ORM Tutorial', author='Terry', pub_date=datetime.now()) book.save()
book = Book.objects.get(id=1) book.title = 'Updated Title' book.save()
book = Book.objects.get(id=1) book.delete()
objects
オブジェクトを使用してクエリを実行できます。以下は簡単なクエリのサンプル コードです:books = Book.objects.all() for book in books: print(book.title, book.author, book.pub_date)
このコードは
Book# # を出力します#テーブル内のすべてのレコードの title、author
、および pub_date
フィールド。 IV. 高度なクエリ操作
基本的な CRUD 操作に加えて、Django ORM は、テーブル結合クエリ、クエリ条件の組み合わせ、集計操作など、いくつかの高度なクエリ操作もサポートしています。コード例をいくつか示します。
a. テーブル結合クエリ
Django ORM は、テーブル結合クエリの 2 つの方法をサポートしています: 1 つは
ForeignKeyフィールドを介して関連付けることで、もう 1 つは相関関係を実行するためのクエリを自己定義します。
# 通过ForeignKey字段关联 class Author(models.Model): name = models.CharField(max_length=50) class Book(models.Model): title = models.CharField(max_length=100) author = models.ForeignKey(Author, on_delete=models.CASCADE) books = Book.objects.filter(author__name='Leo Tolstoy') # 以上代码查询了作者名为'Leo Tolstoy'的所有图书 # 通过自定义查询进行关联 books = Book.objects.raw('SELECT * FROM app_book INNER JOIN app_author ON app_book.author_id = app_author.id WHERE app_author.name = %s', ['Leo Tolstoy'])
b. クエリ条件の組み合わせDjango ORM では、
オブジェクトを使用して複数のクエリ条件を組み合わせ、より複雑なクエリを実現できます。以下はサンプル コードです:
from django.db.models import Q books = Book.objects.filter(Q(title__contains='Django') | Q(author__contains='Guido')) # 以上代码查询了标题中包含'Django'或作者名中包含'Guido'的所有图书
c. 集計操作集計操作は、データをグループ化するか統計を要約するために使用されます。 Django ORM でサポートされている集計操作には、
、
Max、Min
、Count
、Sum
などが含まれます。サンプル コードは次のとおりです: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>from django.db.models import Avg
avg_pub_date = Book.objects.all().aggregate(Avg('pub_date'))
# 以上代码计算了所有图书的发布时间的平均值</pre><div class="contentsignin">ログイン後にコピー</div></div>V. 概要<code>
この記事では、Python の ORM フレームワーク Django ORM について詳しく説明します。 Django ORM は、使いやすく、機能が豊富で、スケーラブルな ORM フレームワークであり、開発者が迅速な開発とより効率的なデータベース操作を実現できるように支援します。基本的な CRUD 操作に加えて、Django ORM は、テーブル結合クエリ、クエリ条件の組み合わせ、集計操作など、より多くのデータ操作のニーズを満たすことができるいくつかの高度なクエリ操作もサポートしています。
以上がPythonのORMフレームワークであるDjango ORMの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。
