Django開発の11件について
2000 ワード
原文は11 Things I Wish I Knew About Django Development Before I Started My Companyは正しいディレクトリ構造で始まります.最初は、いくつかの異なるオープンソースプロジェクトを指導(1と2)として見て、いくつかのブログを読みましたが、Djangoプロジェクトを開始する最善の方法はありません.これは私が現在使用しているものです: 非同期タスクとタイミングタスク(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 を圧縮
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にテンプレートを作成して追加しました❤でしょう.更新:NGINXがすべてのリクエストとサービスの静的コンテンツを管理すると仮定します.