私はdjangoを使ってWebサイトを開発していますが、私はどのようにプロジェクトを構築すべきか分かりません。DjangoプロジェクトのURLとファイル構成
のは、私のプロジェクトツリーがあるとしましょう:
main
├───_main
| ├── __init__.py
| ├── settings.py
| ├── urls.py
| └── wsgi.py
├───_accounts
| ├── models.py
| ├── forms.py
| ├── urls.py
| ├── views.py
| └── ...
└───_website
├──_static
| └──_website
| ├── css (...)
| └── js (...)
├──_templates
| └──_website
| └── (html files...)
├── urls.py
├── views.py
└── ...
私は私のプロジェクトに2つのアプリケーション(「アカウント」と「ウェブサイト」)を持っている「メイン」。 「アカウント」アプリは、ユーザーモデルと認証プロセスを実装します。 「ウェブサイト」アプリは、ホームページなどの非モデル関連のものを制御します。もちろん、もっと多くのアプリがあります...
この時点で、すべてのWebファイル(html、css、js ...)は「ウェブサイト」(静的/テンプレートフォルダ)、およびウェブサイト/ URL .pyはすべてのURLを処理します。
# website/urls.py
from django.conf.urls import url, include
from .views import index
from accounts.views import LoginView, LogoutView, RegisterView
urlpatterns = [
url(r'^$', index, name="index"),
# Accounts
url(r'^login/', LoginView.as_view(), name="login"),
url(r'^logout/', LogoutView.as_view(), name="logout"),
url(r'^register/', RegisterView.as_view(), name="register"),
]
それは、ログインフォームのように、そのユーザーに関連するWebファイル私には理にかなって、フォームを登録するなど、「アカウントの内部の静的およびテンプレートのディレクトリに格納する必要があり、そしてURLは「/ログイン」のような(取り扱い、 '/ logout'、 '/ register' ...)はaccounts/urls.pyで管理する必要があります。それが正しいか?もしそうなら、どうしたらいいですか?
私の心に入ってくるだけの事は(テストしていません)メイン/ urls.py内のすべてのアプリからurls.pyファイルごとに含めることです。
# main/urls.py
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('website.urls', namespace="website")),
url(r'^', include('accounts.urls', namespace="accounts")),
]
をしかし、それは奇妙なようだ...何正しい方法ですか?
でなければならないと考えてテンプレートフォルダをすべてのアプリケーションフォルダに入れます。 – Vaibhav
今のところ私は 'main/urls.py'ソリューションに切り替えました。それは正常に動作し、今私はアプリケーションの名前空間を使用することができます。私は 'account'に 'static'と 'templates'フォルダを作成し、アカウント関連のファイル(htmlフォーム...)の中にコピーしました。私はそれがアプリ全体をより多くのポータブルにすると思う。しかし、わかりやすくするために、私は 'ウェブサイト'アプリでhtmlsの作業を続けます。私はそれが良い練習であるかどうかはわかりません。 – sysseon
あなたはアプリケーションに基づいてファイルを置くことができますが、Appsは独自のテンプレート/静的/ URLファイルを持ちます。移植性はありますが、ほとんどの場合は必要ありません。別のAppに異なるURLのファイル – Vaibhav