Django モデルの効率を向上させるためのいくつかの小さな方法
Django のモデルは、特に大量のデータベース操作を行う場合にはあまり効率的ではありません。企業の Web サイトを開く場合やプロジェクトをアウトソーシングする場合にのみ Django を使用する場合は、省略しても問題ありません。プログラムの効率要件が比較的高い場合は、次の方法に注意する必要があります。
1. count() メソッド:
count メソッドを使用してレコード数を取得したい場合は、次のメソッドを使用できます:
num = info.objects.filter('...').count()
見てみましょう Django モデルモジュールで count メソッドを記述する方法は?
def count(self):
"""
SELECT COUNT() を実行し、レコード数を
整数として返します。
QuerySet がすでに完全にキャッシュされている場合、これは単純にキャッシュされた結果セットの長さを返します
。複数の SELECT COUNT(*) 呼び出し。
"""
self._result_cache が None でなく、self._iter:
return len(self._result_cache)
return self.query.get_count(using=self.db)
の場合上記のことから、djang モデルの count() は、実際にデータベースにクエリを実行する SELECT COUNT() ステートメントを実行する必要があります。このように、レコード数が多い場合、データベースへのクエリの効率は比較的高くなります。 len() メソッドを使用して長さを見つける場合、使用される反復の効率は低くなります。
info = info.objects.filter('...')
num = len(info)
2 多用途のスライス
たとえば、データをクエリしたい場合、データ量が比較的大きい場合、必要な機能はありません。クエリの制限 たとえば、
ニュース データをページに表示したい場合、すべてのデータを読み取るのではなく、1 ページに表示したいだけのデータを読み取る必要があります。を一度に実行し、定義された条件に従ってデータを表示します。
たとえば、トップ 10 のニュース項目を表示したい場合は、次のように実行します:
news = News.objects.all()[1:10]
代わりに:
news = News.objects.all()
news = news[1:10]
なぜなら
news = News.objects.all()
news = news[1:10]
データベース内のすべてのデータを読み取ることになるため、あまり効率的ではありません。
上記のポイントは、Django モデルの効率を向上させるためのいくつかの小さな方法です。Django でプロジェクトを開発する際には、皆さんもいくつかの効率的な点に注意を払っていただければ幸いです。

ホット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)

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。
