Django项目中的URL和文件组织

时间:2017-07-26 16:10:56

标签: python django django-urls code-structure

我正在用django开发一个网站,我不知道如何构建我的项目。

让我们说我的项目树是:

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
      └── ...

我的项目' main'中有两个应用程序('帐户'和#39;网站')。 '帐户' app实现用户模型和身份验证过程。 '网站'应用程序控制非模型相关的东西,如主页等。当然,会有更多的应用......

此时,所有网络文件(html,css,js ...)都是“网站”中的商店。 (static / templates文件夹)和website / urls.py处理所有网址。

# 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"),
]

对我来说,用户相关的网络文件,如登录表单,注册表单等,应该存储在帐户内的静态和模板目录中,以及处理网址(如&#39) ; / login',' / logout',' / register' ...)应由accounts / urls.py管理。这是对的吗?如果是这样,我该怎么做?

我想到的唯一一件事(未经测试)是包含main / 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")),
]

但这看起来很奇怪......什么是正确的方法?

1 个答案:

答案 0 :(得分:0)

我认为一定是

main
  ├───_main
  |   ├── __init__.py
  |   ├── settings.py
  |   ├── urls.py
  |   └── wsgi.py
  ├───_accounts
  |   ├── models.py
  |   ├── forms.py
  |   ├── urls.py
  |   ├── views.py
  |   └── ...
  |
template-
  |
static
  └──
      ├── css
      ├── js
      └── ...