web-dev-qa-db-ja.com

django

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
...
19
Woss

各アプリのフォルダーには次のものが含まれます。

  • views.py
  • models.py
  • その他オプション(admin.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
16
nlassaux

Djangoについて理解しておくべきこと:

  1. URLマップは、ファイルシステムやアプリケーションコードには影響しません。つまり、URLはコードと1対1の関係にありません。同じコードを指す(同じビューを指す)複数のURLを持つことができます。これは、PHPとは異なります。たとえば、URLがファイルシステムにマッピングされます。

  2. アプリケーションは「ウィジェット」や「ポートレット」ではありません。アプリケーションは単なるpythonモジュールであり、すでにいくつかのファイルが含まれています(views.pymodels.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'),
13
Burhan Khalid

アプリとは何かについて混乱しています。アプリは関連する機能の集まりであり、通常(必須ではありませんが)、モデル、ビュー、テンプレートが含まれます。

「ユーザー」はアプリではなく、モデルですが、通常は組み込みのDjango.contrib.authアプリを使用してユーザー機能を提供します。どのアプリでも、モデルを含む他のアプリのコードを使用できます。また、1つのアプリで好きなだけモデルを作成できます。

3
Daniel Roseman