ジャンゴ電池10個



Djangoに便利なバッテリーを使用した経験を引き続き共有しています。

前編

また、 pythonとdjangoに関する混乱したメモ」「DjangoプロジェクトPRヒーロー:内容と経験を積んだもの もお勧めします。



Djangoのために膨大な数のパッケージを作成しました。 これらのうち、最新のプロジェクトで使用した10個選択し、満足しました。 それらはすべてPyPI上にあります。 それらは文書化され、テストでカバーされます。 例外は、別個のdjango-sphinxです。







ジャンゴhvad



モデルに多言語フィールドを保存する興味深い実装。 変換されたモデルごとに追加のテーブルが作成され、ここに排他的に変換された属性が保存されます。



モデルの説明の例:



class DjangoModel(TranslatableModel): name = models.CharField(max_length=255, unique=True) author = models.CharField(max_length=255) translations = TranslatedFields( description = models.TextField(), description_author = models.CharField(max_length=255), ) def __unicode__(self): return self.name
      
      







リクエストの例:



 DjangoModel.objects.language('en').filter(description_author='Jonas Obrist')
      
      







このアプリケーションは、アルファ版ではありますが、そのカテゴリーで最高のものの1つです。 著者自身が公然と認めているように、場所によっては湿気があります。 データベースクエリの数を最小限に抑えることを試み、南の移行に優しいです。

さらに、django-hvadはフィールドを翻訳するための素晴らしい管理パネルを描画できます:





Github

ドキュメント



django-whatever(django-any)



このモジュールを使用すると、テスト用のかさばるフィクスチャの作成を放棄し、モデルオブジェクトをその場で簡単に作成して、フィールドをランダムデータで埋めることができます。 これにより、テストがより読みやすく、サポートされるようになります。



モデルの2つのインスタンスを作成しますが、テストに重要なフィールド値のみを作成するときに指定する例を示します(残りはdjango-anyによって行われます)。



 from django_any import any_model class TestMyShop(TestCase): def test_order_updates_user_account(self): account = any_model(Account, amount=25, user__is_active=True) order = any_model(Order, user=account.user, amount=10) order.proceed() account = Account.objects.get(pk=account.pk) self.assertEquals(15, account.amount)
      
      







django-anyはkmmbvnrによって作成され、django-whateverは著者の友好的な分岐点であり、 いくつかの機能追加し、いくつかのバグを修正しました



Github

ドック



ジャンゴジェンキンス



DjangoとJenkinsの便利な統合により、kmmbvnrからの継続的な統合の問題に対するソリューションを簡素化します。 すべてが非常に簡単です。設定して使用すると、苦情はありません。



Djangoでのテストおよびdjango-jenkinsとの統合に関する直接記事:



Github

著者のビデオチュートリアル:「テストを開始して楽しむ方法」



ジャンゴガーディアン



アプリケーションは、モデル全体ではなく、ボックスにないオブジェクトに対する権限の機能を実装します(オブジェクトレベルのアクセス許可)。 Django 1.2以降、認証バックエンドオブジェクト権限のチェックをサポートしていますが、これはDjango自体には実装されていません。 django-guardianはこのギャップをうまく埋めます。



おそらく発見された唯一の欠点は、モデルに対するグローバルな権利の存在が特定のオブジェクトに権利を与えず、別のチェック必要することです。



Github

ドック



django-email-confirmation



他の多くの同様のバッテリーの中で、django-email-confirmationは一度にすべてを処理しませんが、必要なことはうまくいきます。 ユーザーは複数のメールアドレスを登録し、それらからメインのアドレスを選択し、メールでアドレスを確認し、この簡単なプロセスを管理することができます。 あなたは手紙のためにあなた自身のテンプレートを定義することができます、あなたは友人をセロリで手紙を送る方法にすることができます、すべてはそうあるべきです。 Pinaxプロジェクトの一部です。



Github



django-compressor / webassets



私たちの意見では、CSS / JSの接着と縮小のための2つの最も興味深いアプリケーションです。 前回の投稿で言及したdjango-compressとは異なり、これらは設定を必要とせず、テンプレートタグを使用して動作できます。これはレイアウト設計者にとって非常に便利です。 注目に値するwebassetsは、Django( flask-assets )だけでなく動作します。 両方のモジュールは、拡張機能を通じてJinjaをサポートします。 SAS、LESS、CoffeeScriptのファンは気分を害することはありません。プリプロセッサもサポートされています。



django-compressorを使用し、戦闘サーバー上のアプリケーションの最新バージョンへの急いでの更新に注意してください。モジュールは積極的に開発されており、テストにもかかわらず定期的に予期しないリグレッションが発生します。 それ以外の場合は、djangoコア開発者の1人による非常に素晴らしいパッケージ。



django-compressor github

django-compressorドック



webassets github

webassetsドック



django-taggit



構造的にも機能的にもシンプルなバッテリー。 名前が示すように、django-taggitはタグのサポートを実装しています。 彼は、特別なマネージャーの助けを借りて、モデルレベルでこれを行います。 スルーモデルを通じてカスタマイズと拡張が非常にうまく行われ、既にすべての人の歯を手に入れたタグクラウドの作成方法を知っており、その他の標準的な処理(タグの追加/削除など)を実行します。 ドキュメントは非常に小さいですが、網羅的であるため、知人はそれほど時間をかけません。



Github

ドック



ジャンゴスフィンクス



人気のある検索エンジンであるスフィンクスは、その速度、柔軟性、およびロシアの形態の特性を考慮する能力のおかげですべてのものです。これは、最も近い競合他社とは言えません。 人気にもかかわらず、Djangoには1つのインテグレータソリューションdjango-sphinxがあります。



何が得られるの?

同時に:

近日中に、このモジュールでの経験を共有し、発見された落とし穴を詳細に説明しようとします。 多くのニュアンスは別の記事に基づいています。



Github(フォーク)



有用な記事(関連性が低い場合もあります):

ジャンゴセロリ



非同期タスクを実行できない多かれ少なかれ大規模なプロジェクトで真に不可欠なバッテリー。 実際、CeleryはPythonでキューを実装するための事実上の標準であり、幅広い機能を備え、さまざまなバックエンドをサポートし、優れたAPIを備えています。



Habrには、Djangoと統合する際のチューニングや落とし穴など、セロリの操作方法に関する良い記事が2つありました。

Github

ドキュメント



ジャンゴホスト



サブドメインに応じてURLルーティングを管理するためのモジュール。各サブドメインは独自のURLConfを持つことができます。 サイトに多くのサブドメインがある場合、このバッテリーは便利です。



Github

ドキュメント



PSオープンソースgithub.com/futurecolorsおよびgithub.com/coagulantへの謙虚な貢献



All Articles