最近自動運用保守プラットフォームを構築する予定なので、Django の知識を調べています。
実際のプロジェクト開発では、小さな問題に遭遇しました。フロントエンドとバックエンドの間の主流のデータ対話は JSON です。フロントエンドがサーバーにデータを転送するのは比較的簡単ですが、少し面倒なのは、サーバー側が JSON をフロントエンドに転送することです。
まず、Django はデフォルトで ORM テクノロジーを使用しますが、この種の抽象的な API には実はうんざりしています。これは、データベース テーブルを開発者向けのオブジェクトに抽象化するため、開発には便利であり、SQL ステートメントを記述する必要がありませんが、その後のプログラムでパフォーマンスのボトルネックの原因にもなります (トラブルシューティングを再度実行したときに、70 行の SQL に遭遇しました)ステートメント...) 運用保守担当者にとって、純粋な SQL は基本的な能力であり、ORM の構文を学習すると学習コストが増加します。
それはともかく、今回のテーマはデータベースから取得したデータをJSONに変換することです。以下ではORMとSQLの両方のメソッドを共有します。
1. Django モデルレイヤーと ORM テクノロジーを使用して JSON 形式に変換します
1 def getdata(request):2 # 使用ORM3 # all()返回的是QuerySet 数据类型;values()返回的是ValuesQuerySet 数据类型4 data = models.VM.objects.values('id', 'ip', 'host', 'username')5 data = serializers.serialize("json", tomcats)6 return JsonResponse(list(data), safe=False)
2. Django モデルレイヤーを完全に放棄し、純粋な SQL を JSON 形式に変換します
1 def getdata(request):2 # 使用SQL3 with connection.cursor() as cursor:4 cursor.execute('select id, machine, tomcathome, ipaddress, description from tomcatData')5 data = dictfetchall(cursor)6 return JsonResponse(data, safe=False, json_dumps_params={'ensure_ascii': False})
JsonResponse オブジェクト:
class <span class="highlighted">JsonResponse</span>
(data) 、encoder=DjangoJSONEncoder、safe=True、json_dumps_params=None、**kwargs)
このクラスは、HttpRespon のサブクラスです。そのデフォルトの Content-Type は、アプリケーションに設定されます。 /json
2. 最初のパラメータである data は、辞書型である必要があります。安全なパラメータが False に設定されている場合、リスト、タプルなどの JSON 形式に変換できる任意のオブジェクトをデータに入力できます。 、 セット。 デフォルトの安全なパラメータは True です。渡したデータ型が辞書型ではない場合、TypeError 例外がスローされます。
3. json_dumps_params パラメーターは辞書であり、 json.dumps() メソッドを呼び出し、辞書内のパラメーターをメソッドに渡します。
上記の説明により、上記 2 つのメソッドの JsonResponse() で渡されるパラメーターは非常に明確です。
このように、データはJSON形式でフロントエンドに渡され、フロントエンドはAJAXを利用して取得し、加工したり表示したりすることができます。
以上がデータベースデータをJSON形式に変換する例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Numpyを使用して多次元配列を作成すると、次の手順を通じて実現できます。1)numpy.array()関数を使用して、np.array([[1,2,3]、[4,5,6]])などの配列を作成して2D配列を作成します。 2)np.zeros()、np.ones()、np.random.random()およびその他の関数を使用して、特定の値で満たされた配列を作成します。 3)アレイの形状とサイズの特性を理解して、サブアレイの長さが一貫していることを確認し、エラーを回避します。 4)np.reshape()関数を使用して、配列の形状を変更します。 5)コードが明確で効率的であることを確認するために、メモリの使用に注意してください。

BroadcastinginNumPyisamethodtoperformoperationsonarraysofdifferentshapesbyautomaticallyaligningthem.Itsimplifiescode,enhancesreadability,andboostsperformance.Here'showitworks:1)Smallerarraysarepaddedwithonestomatchdimensions.2)Compatibledimensionsare

Forpythondatastorage、chooseLists forfficability withmixeddatypes、array.arrayformemory-efficienthogeneousnumericaldata、およびnumpyArrays foradvancednumericalcomputing.listSareversatilebuteficient efficient forlargeNumericaldatates;

pythonlistsarebetterthanarrays formangingdiversedatypes.1)listscanholdelementsofdifferenttypes、2)adearedditionsandremovals、3)theeofferintutiveoperation likeslicing、but4)theearlessememory-effice-hemory-hemory-hemory-hemory-hemory-adlower-dslorededatas。

toaccesselementsinapythonarray、useindexing:my_array [2] Accessesthirderement、Returning3.pythonuseszero basedIndexing.1)usepositiveandnegativeindexing:my_list [0] forteefirstelement、my_list [-1] exterarast.2)

記事では、構文のあいまいさのためにPythonにおけるタプル理解の不可能性について説明します。 Tupple式を使用してTuple()を使用するなどの代替は、Tuppleを効率的に作成するためにお勧めします。(159文字)

この記事では、Pythonのモジュールとパッケージ、その違い、および使用について説明しています。モジュールは単一のファイルであり、パッケージは__init__.pyファイルを備えたディレクトリであり、関連するモジュールを階層的に整理します。

記事では、PythonのDocstrings、それらの使用、および利点について説明します。主な問題:コードのドキュメントとアクセシビリティに関するドキュストリングの重要性。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









