Djangoフレームワーク、ドキュメントを読んでいますが、同じプロジェクトに複数のアプリケーションを作成する方法に関するリファレンスが見つかりません。各アプリケーションには複数のアプリケーションがあります。たとえば、アプリケーションアプリのユーザー、コメント、投稿などのブログ、アプリのクライアント、ユーザー、添付ファイルの実装とタスク...どうすればよいですか?
localhost
localhost/blog/ (posts, user, comment, ...)
localhost/tasks/ (task, user, attachment, ...)
<my project>
-- manage.py
-- <project name>
-- -- blog
-- -- -- posts
-- -- -- -- views.py
-- -- -- -- urls.py
-- -- -- -- models.py
...
-- -- tasks
-- -- -- attachments
-- -- -- -- views.py
-- -- -- -- urls.py
-- -- -- -- models.py
...
各アプリのフォルダーには次のものが含まれます。
だから、あなたは持っています:
Project
-- manage.py
-- Project
-- -- views.py
-- -- models.py
-- -- others
-- -- APP1
-- -- -- views.py
-- -- -- models.py
-- -- -- others
-- -- APP2
-- -- -- views.py
-- -- -- models.py
-- -- -- others
-- -- APPX
-- -- -- views.py
-- -- -- models.py
-- -- -- others
ユーティリティは機能間の違いです(通知アプリと通知モデルが含まれている場合は、Notification.models.notificationを呼び出します)。
モデルはオブジェクトのアーキテクチャです。したがって、たとえばUser.usernameまたはTask.nameを呼び出します。 Djangoは、データベースにテーブルを自動的に作成します。
Djangoの別のツール:管理ビューを使用するか(モデルを使用するオブジェクトを編集、作成、編集、編集できます)、またはこのインターフェースを変更します(外観 そのページ ))
識別システムを作成し、フォームを作成したい場合は、独自の管理システムを使用できます。
あなたの例で:
<my project>
-- manage.py
-- <project name>
-- -- urls.py
-- -- models.py <--- User model exists in Django and here you can add informations to the defaut model it is in this file because I suppose it will be used in all your project.
-- -- views.py
-- -- blog <--- It's an app.
-- -- -- -- views.py
-- -- -- -- urls.py
-- -- -- -- models.py <--- Posts, Comments are models for the blog, so you explain them here.
-- -- tasks <--- Another app.
-- -- -- attachments
-- -- -- -- views.py
-- -- -- -- urls.py
-- -- -- -- models.py <--- Task model for exemple
Djangoについて理解しておくべきこと:
URLマップは、ファイルシステムやアプリケーションコードには影響しません。つまり、URLはコードと1対1の関係にありません。同じコードを指す(同じビューを指す)複数のURLを持つことができます。これは、PHPとは異なります。たとえば、URLがファイルシステムにマッピングされます。
アプリケーションは「ウィジェット」や「ポートレット」ではありません。アプリケーションは単なるpythonモジュールであり、すでにいくつかのファイルが含まれています(views.py
、models.py
および__init__.py
););必要な数のアプリを作成できます。また、URLを使用してアクセスできないアプリケーションを作成することもできます。これらのアプリケーションは、他のアプリケーションをサポートするためだけにあり、アプリケーションもURLと同じ名前である必要はありません。
そのことを覚えておいてください... 1つのアプリケーションを作成し、それをwww
と呼び、そのviews.py
内で、これらの非常に独創的な名前のメソッドを定義できます。
def blog(request):
pass
def tasks(request):
pass
urls.py
では、次のことが可能です。
url(r'^blog/$','www.views.blog',name='blog-index'),
url(r'^blog/posts/$','www.views.blog',name='blog-posts',kwargs={'view_posts': True}),
url(r'^tasks/$','www.views.tasks',name='task-index'),
url(r'^tasks/attachments/$','www.views.tasks',name='task-attachments'),
アプリとは何かについて混乱しています。アプリは関連する機能の集まりであり、通常(必須ではありませんが)、モデル、ビュー、テンプレートが含まれます。
「ユーザー」はアプリではなく、モデルですが、通常は組み込みのDjango.contrib.authアプリを使用してユーザー機能を提供します。どのアプリでも、モデルを含む他のアプリのコードを使用できます。また、1つのアプリで好きなだけモデルを作成できます。