Django開発の11件について


原文は11 Things I Wish I Knew About Django Development Before I Started My Company
  • は正しいディレクトリ構造で始まります.最初は、いくつかの異なるオープンソースプロジェクトを指導(1と2)として見て、いくつかのブログを読みましたが、Djangoプロジェクトを開始する最善の方法はありません.これは私が現在使用しているものです:appsディレクトリはあなたのカスタムdjango appをすべて格納し、vendorディレクトリはpipやeasyを使用したくないことを格納しています.Installインストール(またはインストールできない)のapp.binディレクトリには、bashスクリプトがすべて格納されており、開発を自動化できます.ここでのスクリプトには、プリパブリケーション&本番サーバへの導入、ディレクトリのクリーンアップ、assetsの圧縮、データベースのバックアップ、start/stop celery(ローカル)などがあります.configディレクトリには、すべてのデータベース、webservers、munin、celery、supervisorなどのプロファイルが格納されています.mediaディレクトリにはjavascript,css,images,fontsなどのすべての静的assetsが格納されています.templateディレクトリには、あなたのサイトをよりきれいにするhtmlテンプレートがすべて格納されています.最後に、staticディレクトリは、生産環境に入れるために圧縮されたassetsです.githubにテンプレートを作成して追加しました❤でしょう.
  • 非同期タスクとタイミングタスク(unix crontabを使用する必要はありません)Celeryを使用します:開発の最初の2週間は、いくつかのことを非同期プロセスにプッシュする必要はありませんが、非技術パートナーがウェブサイトになぜ掛けたのかを聞き始めると、celeryを使用します(より軽量なソリューションが必要な場合は、別のオプションがあります).同期を必要としない呼び出しは、キューに格納され、最終的にはcelery workerによって消費されます.私はredisをceleryバックエンドとして使用することをお勧めします(以下を見てください)-RabbitMQを使用する時間を無駄にしないでください.もっと良い理由がない限り.私はceleryを使用してすべてのソートタスクを行い、メールの送信からFacebook APIからデータを抽出します.celeryを使用するもう一つの関心事は、定期的なタスクをタイミングタスクとして設定できることです.私が初めてMathとPencilの開発を始めたとき、UNIX crontabを使っていましたが、すべてのことをceleryに移植しました.
  • Gunicornを使ってあなたのwebserverのApacheの代わりにします:私は知っています-Apacheは実戦検査を経て(加えて世界で最も人気があります)、しかし2年前、私が知らない時、すでにとても複雑な設置でした.私はただウェブサイトを実行して私のコードの中の印刷文を忘れたいだけです-ああ-私のウェブサイトに500が現れました.Apacheには多くの構成設定があり、理解するのに時間がかかります.Guniornはとても簡単で、よく仕事ができます.多くのサイトが大規模に使用されているので、次のInstagramを作成するだけでは、サーバが失敗しないことがわかります.
    更新:NGINXがすべてのリクエストとサービスの静的コンテンツを管理すると仮定します.
  • MongoDBを主なデータストレージとして使用することを恐れないでください:
  • 名前付きURLs,reverse,url template tag
  • を使用
  • 正しいsettingsを設定.pyファイル
  • supervisorを使用してプロセスモニタリング
  • を行う
  • 正しいAJAX/JSONメソッド
  • を選択
  • Redisを使用します.最終的にはあなたの親友になるからです.
  • muninとstatdsを使用してプロセスモニタリング
  • を行う
  • jammitを使用して静的asset
  • を圧縮