Django REST フレームワーク (DRF) のベスト プラクティス (1)

Django REST フレームワーク (DRF) のベスト プラクティス (1)

合理的な構成をいくつかまとめましたので、不足点があれば、指摘していただければ幸いです。ただ指摘しているだけではなく、よく聞いてください。

設定、マルチ環境構成

設定に関しては、多くの初心者にとってはシステム設定を使用して変更するだけで済みますが、実際には、開発環境と本番環境、ローカルとリモートなど、異なる環境が区別されます。提案としては、settings という名前のフォルダーを作成し、そのフォルダー内にさまざまな構成を作成し、タイムゾーン設定、認証設定、戻り値の形式などの一般的なものを settings_base.py に入れて、新しい開発環境を作成することです。 .py には、debug_toolbar などの開発環境にいくつかの開発ツール、開発中のテストに使用されるいくつかのライブラリが含まれています。作成後のディレクトリは次のようになります。

project_demo
∴─apps
│ §─app1
│ │ §─app2
│ └─app3 │
─project_demo
│ §─settings
│ │ ‐__init__.py │
│ ‐dev.py
│ │ ‐prod.py
│ │ ‐settins_base. py
│ ∴─asgi.py
│ ─urls.py
│ ‐wsgi.py │
‐utils
│ ‐……
│ ‐.env

写真1
ここでは、設定フォルダー内の __init__.py ファイルに注意する必要があることに注意してください
。このファイルがないといけないので、コンテンツが必要です。たとえば、dev.py の構成を返したい場合は、次のようにする必要があります。 __init__.py に次のように書きます。
図2

dev.py では、図に示すように、最初にパブリック構成をインポートし、次に開発に使用する追加の構成を追加または変更します。上の図は
画像3
私の構成にすぎません。構造を学ぶことはできますが、ただコピーするだけではありません。とすると、エラーが発生します。

環境変数

設定に直接置かず、新しい .env ファイルを作成し、環境変数を .env に保存します。
たとえば、
.env
次のように使用します。

  1. python-dotenv をインストールする
    pip install python-dotenv
    
  2. 設定で使用される
    # settings_base.py
    from dotenv import load_dotenv
    
    # 如果部署时得到的环境变量为空,可以在括号内加上文件 如load_dotenv(os.path.join(BASE_DIR, '.env'))
    load_dotenv()
    
    SECRET_KEY = os.environ.get("SECRET_KEY")
    

アプリフォルダーを使用してアプリを一元管理する

Django では、通常、アプリケーションを均一に管理するために apps フォルダーが使用されます。これにより、特にプロジェクトが大規模かつ複雑になる場合に、アプリケーションの管理と保守が容易になります。

DRF でアプリ フォルダーを使用する手順は次のとおりです。

  1. プロジェクトのルート ディレクトリに「apps」という名前のフォルダーを作成します。

  2. 「apps」フォルダー内に新しいアプリケーションを作成します。次のコマンドを使用してアプリケーションを作成できます。

    python manage.py startapp myapp
    
  3. アプリケーションを INSTALLED_APPS に追加します。settings.py ファイルで、アプリケーションの名前を「myapp」から「apps.myapp」に変更します。

    INSTALLED_APPS = [
        ...
        'apps.myapp',
    ]
    

エラーが発生した場合は、アプリケーション myapp の apps.py ファイルの名前を apps.myapp に変更します。

上記は一つの方法であり、もう一つは、設定でアプリのパスを設定して追加する方法です。設定が完了したら、アプリを記述する必要はありません。この部分は、編集ツールに正しくインポートされません。実際の操作は表示されませんが、操作は以下の通りです。

#settings_base.py	
BASE_DIR = #省略

sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

RESTful 設計原則に従う

合格

シリアライザーが使用する

合格

さらなるアップデートをお待ちください


以上、私はこれを記録し、私の後に続く他の人たちに役立つことを願っています。

おすすめ

転載: blog.csdn.net/aifengaopeng/article/details/132830961