Django 開発経験を記録する
概念的レベル
概要
Django は MVC に属する Web フレームワークです。
モデル: データベースの処理を担当します
ビュー: モデルから取得したデータの取得または拡張を担当します
コントローラー: これは Django 自体です
プロジェクトとアプリの違い
プロジェクト: さまざまな設定ファイルを提供します アプリ: モデルやビューを含む関数の組み合わせは、Python が認識できるように「__init__.py」をルート ディレクトリに追加する必要があります
ManyToMany とForeignKey の違い
外部キーの例:
従業員の出勤記録 - 従業員は複数の出勤記録を持つことができますが、1 つのパンチイン レコードは 1 つの従業員属性 (1 対多) のみを持つことができます
ManyToMany の例:
記事には複数のタグを付けることができ、タグに対応する記事も複数 (多対多) にすることができます
ManyToMany にも特別な構造があり、Twitter のフォローによく似ています。
A は B に従うが、B は A に従わないとします。この関係を実現するには、Meta
で symetric=False を設定します。セクシーコード
これが私が理解して「めちゃくちゃセクシー」だと思うコードです:
lambda x, y: x+y
Lambda は実際には JS の匿名関数と同じ効果があります。名前を付けるのが面倒であればそのまま放り込んでください。Lambda はデフォルトで内部の値を返すため、return する必要はありません。
map(lambda x: x+1, [1,2,3]) #得到[2,3,4]
つまり、前の関数はそれぞれ 1 回実行されます
reduce(lambda x, y: x+y, [1,2,3]) #得到6
つまり、各操作は前の要素で 1 回実行されます
[i for i in xrange(0,100) if i%2==0]
100 未満の偶数をすべて取得します。これは学術用語では「リスト理解」と呼ばれますが、実際のケースでは、トラバースのための優れたツールです。
Q(**{key:value})
トレーニング中に学んだことは、2 つの Django 関数 Q と F は文字列を受け入れない、つまり Q("abc=1") は受け入れられないということです。しかし、このコードの魅力的な点は、この制約が完全に取り除かれ (実際、キーワードのペアが書き換えられる)、好みのクエリ セグメントを自由に構築できることです。これは、検索関数を構築するときに非常に役立ちます。例:
q_dict = reduce(lambda x,y: x&y, [ Q(**{"%s__slug_name" % taxonomy:request.GET.get(taxonomy)} ) for taxonomy in request.GET.keys() if taxonomy in SEARCHABLE_LIST ]) @property
この @ 記号の使い方を「修飾子」と呼びますが、個人的にはここが他の言語に比べて Python の美しいところだと感じています。修飾子の作り方についてはドキュメントを読むのが良いでしょう。ここで私が言っているのは、クラスで @property を使用すると、この関数は自動的にクラスのプロパティになるということです。これは、js の set と get
に非常に似ています。
super super クラスを使用すると、super が出現すると、継承されたサブクラスは独自の関数を実行するのではなく、super
で指定された関数を実行します。
注釈を付けて集計します。これら 2 人は、新しい query_set を構築するときに非常に役立ちます。たとえば、コンピュータの合計価格を計算したい場合は、ComputerManager で
def get_query_set(self): query_set = super(ComputerManager, self).get_query_set() query_set = query_set.annotate(price=Sum('devices__price'))
このように、各コンピューターには合計価格が設定されています。これは製品セットを構築するときに非常に便利ですが、admin.py の記述は少し冗長です。
エラーセット
データをフェッチするとき: XXManager オブジェクトは反復可能ではありません
これは、Django がコードの実行中に SQL ステートメントを取得してクエリを実行しないためです (したがって、SQL ステートメントを取得することは不可能です)。したがって、実際のデータ エンティティを取得するには、.get()、.all()、.filter を使用する必要があります

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









hadidb:軽量で高レベルのスケーラブルなPythonデータベースHadIDB(HadIDB)は、Pythonで記述された軽量データベースで、スケーラビリティが高くなっています。 PIPインストールを使用してHADIDBをインストールする:PIPINSTALLHADIDBユーザー管理CREATEユーザー:CREATEUSER()メソッド新しいユーザーを作成します。 Authentication()メソッドは、ユーザーのIDを認証します。 fromhadidb.operationimportuseruser_obj = user( "admin"、 "admin")user_obj。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Hash値として保存されているため、Navicatを介してMongoDBパスワードを直接表示することは不可能です。紛失したパスワードを取得する方法:1。パスワードのリセット。 2。構成ファイルを確認します(ハッシュ値が含まれる場合があります)。 3.コードを確認します(パスワードをハードコードできます)。

データの専門家として、さまざまなソースから大量のデータを処理する必要があります。これは、データ管理と分析に課題をもたらす可能性があります。幸いなことに、AWS GlueとAmazon Athenaの2つのAWSサービスが役立ちます。

MySQLデータベースパフォーマンス最適化ガイドリソース集約型アプリケーションでは、MySQLデータベースが重要な役割を果たし、大規模なトランザクションの管理を担当しています。ただし、アプリケーションのスケールが拡大すると、データベースパフォーマンスのボトルネックが制約になることがよくあります。この記事では、一連の効果的なMySQLパフォーマンス最適化戦略を検討して、アプリケーションが高負荷の下で効率的で応答性の高いままであることを保証します。実際のケースを組み合わせて、インデックス作成、クエリ最適化、データベース設計、キャッシュなどの詳細な主要なテクノロジーを説明します。 1.データベースアーキテクチャの設計と最適化されたデータベースアーキテクチャは、MySQLパフォーマンスの最適化の基礎です。いくつかのコア原則は次のとおりです。適切なデータ型を選択し、ニーズを満たす最小のデータ型を選択すると、ストレージスペースを節約するだけでなく、データ処理速度を向上させることもできます。

Redisサーバーを起動する手順には、以下が含まれます。オペレーティングシステムに従ってRedisをインストールします。 Redis-Server(Linux/Macos)またはRedis-Server.exe(Windows)を介してRedisサービスを開始します。 Redis-Cli ping(Linux/macos)またはRedis-Cli.exePing(Windows)コマンドを使用して、サービスステータスを確認します。 Redis-Cli、Python、node.jsなどのRedisクライアントを使用して、サーバーにアクセスします。

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。
