1.構成で相対パスを使用する
に絶対パスを指定しないでください。
settings.py
後で別の場所からプロジェクトを実行する場合など、パスが異なる別のWebサーバーにデプロイする場合に役立ちます。テンプレートと静的ファイルがDjangoプロジェクトディレクトリ内にある場合は、settings.pyで次のコードを使用します。
# settings.py
import os
PROJECT_DIR = os.path.dirname(__file__)
...
STATIC_DOC_ROOT = os.path.join(PROJECT_DIR, "static")
...
TEMPLATE_DIRS = (
os.path.join(PROJECT_DIR, "templates"),
)
2. {%url%}タグを使用します
リンクをハードコーディングする代わりに、下位互換性のあるタグを使用してみてください
{% url %}
。これにより絶対URLが提供されますが、プロジェクトが移動された場合、リンクは引き続き有効です。
基本的
{% url %}
に、ビューの名前とそのパラメーターを受け取り、逆ルックアップを実行して要求されたURLを返します。urls.pyに変更を加えても、リンクは壊れません。
3.PHPアプリケーションにDjango管理者を使用します
Djangoの強みの1つは、Djangoのコアに組み込まれているユーザー認証システムです。設定は非常に簡単で、ユーザー認証と必要な設定を行うための便利なシステムが含まれています。
この認証システムは非常に優れているため、多くの人がPHPアプリケーションの管理領域として使用することを提案しています。
4.静的処理には別のサーバーを使用します
Djangoを使用すると、開発環境で静的ファイルをホストできますが、実稼働環境ではホストできません。
Djangoはあなたをあなた自身から救うように設計されています。 Djangoにサービスを提供している同じApacheインスタンスから静的ファイルを使用しようとすると、パフォーマンスが低下します。
Apacheは各リクエスト間でプロセスを再利用するため、プロセスがDjangoのすべてのコードとライブラリをキャッシュすると、それらはメモリに残ります。また、このプロセスを使用して
Djangoの要求を処理しない場合 、このメモリはすべて無駄になります。
静的処理に別のサーバー(または仮想ホスト)を使用する場合、アプリケーションのパフォーマンスは影響を受けません。
5.Djangoデバッグツールバーを使用します。
デバッグツールは、どの言語でも非常に貴重です。発生する可能性のあるバグや潜在的な問題を見つけるのに役立つため、開発プロセスがスピードアップします。
Djangoデバッグツールバーを使用すると、ビューのレンダリング中に実行されたすべてのSQLクエリを表示でき、それらのいずれかのスタックトレースを表示することもできます。
6.Djangoユニットテスト
ユニットテストは、コードの変更が期待どおりに機能し、以前のコードを壊さないことを確認するための良い方法です。Djangoの優れた点の1つは、ユニットテストの作成が非常に簡単なことです。Djangoには、すぐにdoctestまたはunittestを使用する機能があり、Djangoのドキュメントには、バグの検出をさらに簡単にするためにユニットテストを設定する方法に関する優れたチュートリアルとコード例があります。
7.モデルの視覚化
Django Command Extensionsとpygraphvizをインストールしてから、次のコマンドを使用して、Djangoのプロジェクトモデルを適切に視覚化します。
./manage.py graph_models -a -g -o my_project.png
8. Virtualenv
Virtualenv + Python =魔法の杖。Virtualenvは、個々のプロジェクトごとにPython / Django設定を分離します。これは、あるサイトへの変更が他のサイトに影響を与えないことを意味します。また、サーバー上に異なるバージョンのDjangoまたはpythonを保持する必要がある場合にも便利です。
9.Memcacheを使用します
パフォーマンスの低下が問題になる可能性がある場合は、何らかのキャッシュシステムをインストールすることをお勧めします。Djangoにはキャッシュに関する多くのオプションがありますが、memcachedが断然最高です。
cmemcacheモジュールを使用する場合、memcachedのインストールと使用は簡単です。モジュールをインストールした後、ページの配信をさらに高速に開始するために、構成に1行を追加する必要があります。
10.すべてのテンプレートで使用できるカスタムタグの自動読み込み
from django import template
template.add_to_builtins('project.app.templatetags.custom_tag_module')
これをデフォルトでロードされるモジュール(settings.py、urls.py、すべてのアプリmodels.py)に追加すると、を使用せずに、任意のテンプレートのカスタムモジュールからすべてのタグとフィルターにアクセスできるようになります
{% load custom_tag_module %}
。
toの引数は、
template.add_to_builtins()
任意のモジュールへのパスにする ことができます。カスタムモジュールを特定のアプリケーションに関連付ける必要はありません。
たとえば、プロジェクトのルートにあるモジュールにすることもできます(例: '
project.custom_tag_module
')。
2020年にDjangoを学ぶ価値はありますか?
あなたが疑問に思っている初心者プログラマーなら:私はDjangoを学ぶべきですか?簡単な答えはイエスです。
最小限のコストで迅速にアイデアを実装する必要がある場合は、Djangoが適切なツールです。これは無料のオープンソースであり、Webプロジェクトの開発をさらに簡単にします。 Djangoは、箱から出してすぐに必要な機能を作成するために必要なすべてのものが含まれているため、アプリケーションのプロトタイピングに最適なソリューションです。たとえば、管理パネルは1行のコードで接続できます。
すでにPythonに精通している開発者で、アプリケーションまたはWebサイトのバックエンド用のフレームワークを探している場合は、Djangoも適しています。
フレームワークには、さまざまな操作を実行し、多数のユーザー要求をリアルタイムで効率的に処理できるようにするライブラリとツールが含まれています。
したがって、すべてのコンポーネントを最初から作成する必要がないため、開発プロセスが高速になります。
Djangoのメリット
1.速い
開発者は、フレームワークがシンプルであると同時に高速であることを念頭に置いて作成しました。これには、ホイールを再発明したり、プロジェクトを最初から作成したりしないようにするライブラリが含まれています。
2.安全
セキュリティに関しては、フレームワークを使用すると、レーキを踏まずに、プログラマエラーの可能性によるSQLインジェクション、XSS、CSRFなどの多くのセキュリティ問題を回避できます。
3.管理パネル
フレームワークにはすぐに管理パネルと承認システムがあり、ユーザー管理の時間を節約し、バックエンド用に個別の管理パネルを作成できます。
4.スケーラブル
このフレームワークは、さまざまな程度のワークロードを持つプロジェクトに適しており、小さなプロジェクトが将来成長する可能性がある場合でも、問題はありません。Djangoは、重いワークロードの下で完全に拡張できます。
5.データサイエンスと分析
DjangoがPythonで構築されていることはすでに知っています。また、Pythonは、人工知能と機械学習を使用してプロジェクトを構築するための優れたツールとして知られています。したがって、機械学習をプロジェクトに統合したり、大量の情報を分析して処理したりすることを計画している場合は、間違いなくDjangoを試してみてください。
6.コミュニティサポート
Djangoの周りにはかなり大規模で活発なコミュニティがあり、フレームワーク自体には豊富で便利なドキュメントがあります。
ファストスタート
チームでDjangoのコーディングをすばやく開始してテストするために、空のDjango3.1.3プロジェクトを使用してVPSイメージをビルドしてマーケットプレイスに アップロードしました。
- httpサーバーGunicorn20.0.4
- リバースプロキシとしてのNginx1.14.1
- およびPostgresql12.1データベースサーバー。
このようなサーバーのコストは、月額769ルーブル、1年間支払った場合は538ルーブルになります。
そして、コメントにDjangoで作業しながら、お気に入りのライフハックを書いてください-ヒントの投稿を集めてみましょう。