djangoで複数のappを作成しurlsメソッドを設定

2625 ワード

1、2番目のappを作成する
私たちのプロジェクトPの下にデフォルトのappがあると仮定します.名前はapp 1です.2番目のappを作成したいのですが、名前はapp 2です.
pychramの下のTerminalに入り、コマンドを実行します.

python manage.py startapp app2

また、appごとにurlsを作成します.py、区別しやすいです.
app名を右クリックし、「new」をクリックし、「Python File」を選択し、urlsと命名し、確定します.
2、urlを設定する.py
(1)Purlsを設定.py
app 2のurlsを導入し、ブートパスを追加します.具体的なコードは以下の通りです.

from app2 import urls as app2_urls
urlpatterns = [
    path('app2/',include(app2_urls)), #     app2   urls,   app2(app )  urls.py      
]

(2)app 2urlsを設定.py

from django.urls import path
from app2 import views
urlpatterns = [
    path('index/', views.index),
]

3、app 2のviewsを書く.py

from django.shortcuts import render,HttpResponse
# Create your views here.
#     
def index(request):
    return HttpResponse(111)

4、htmlページurlの呼び出し方法
一般的にhrefまたはsrcで呼び出されます.一般的には、次のように書きます.

href="/app2/index/" rel="external nofollow" 

これでOKです.
コンテンツ拡張:
Djangoプロジェクトの下で複数のappを作成
Django 2に基づく.バージョン0で作成されたアイテム.
以前はプロジェクトの下でappを創立するのはすべて単一で、最近需要のため、単一のプロジェクトの下で複数のappを創立する必要があって、最も簡単な方法はすべてのappをmanageと置くことです.pyファイルは同じクラスのディレクトリの下にありますが、このような方法ではプロジェクトディレクトリの下のフォルダが肥大化しているように見え、強迫症にとっては拷問です.
だから私は複数のappを同じフォルダに置く方法でこの問題を解決しました.

myDjango
  ├───.idea
  │  └───inspectionProfiles
  ├───Apps
  │  ├───app01
  │  │  ├───migrations
  │  │  │  └───__pycache__
  │  │  └───__pycache__
  │  └───app02
  │    ├───migrations
  │    │  └───__pycache__
  │    └───__pycache__
  ├───myDjango
  │  └───__pycache__
  └───templates
    ├───app01
    └───app02

myDjangoはプロジェクト名で、作成したappをAppsフォルダに入れます.このようにすると、プロジェクト全体がきれいに見えます.templateについても同様の方法を採用し、異なるアプリケーションのtemplateを異なるディレクトリの下に置く、urlをできるだけ快適に見せるために、各アプリケーションにurlsを追加した.pyファイル、プロジェクトのurlsのために.pyファイルで参照します.
配置後myDjangoディレクトリの下にあるsetting.pyファイルを設定し、文を追加

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

できたらmyDjangoディレクトリのurlsも必要です.pyファイル対応pathの追加

from django.contrib import admin
from django.urls import path, include
 
urlpatterns = [
  path('admin/', admin.site.urls),
  path('app02/', include("Apps.app02.urls")),
  path('app01', include("Apps.app01.urls")),
]

ここでは基本的に1つのプロジェクトに複数のappを設定することができます.