2017-07-26 27 views
0

我正在用django开发一个网站,我不知道应该如何构建我的项目。Url和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 
     └── ... 

我有两个应用程序(“账户”和“网站”)在我的项目“主”。 '账户'应用程序实现用户模型和认证过程。 '网站'应用程序控制非模型相关的东西,如主页等。当然,还会有更多的应用程序...

此时,所有网页文件(html,css,js ...)都存储在'网站'(静态/模板文件夹)和网站/网址.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"), 
] 

这是有道理的,我认为与用户相关的网页文件,如登录表单,注册表单等,应储存在里面“账户”静态和模板目录和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")), 
] 

,但它似乎不可思议...什么是正确的方式?

+0

你可以把静态和模板主主项目目录内的文件夹,这些文件夹内让应用文件夹,否则将特定的应用程序相关的文件时,程序会增加你必须创建静态和模板文件夹中的每个应用程序文件夹 – Vaibhav

+0

现在我已切换到'main/urls.py'解决方案。它工作正常,我现在可以使用应用程序命名空间。我在'帐户'中创建了'静态'和'模板'文件夹,并将其复制到帐户相关文件(html表格...)中。我认为这将使应用程序在项目中更便携。但是,为了简单起见,我将继续在“网站”应用程序中使用htmls。不过,我不知道这是否是一种好的做法。 – sysseon

+0

你可以把基于应用程序的文件,应用程序将有自己的模板/静态/ URL文件里面,这将给你可移植性,但不需要大多数情况下,像我之前说的使普通模板和静态文件夹和内部使应用程序文件夹分别具有不同网址的文件适用于不同的应用程序 – Vaibhav

回答

0

我认为它一定是

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

虽然那个Django应用程序应该是可移植的。所以,因为我有一个'网站'应用程序,不应该在其中的Web前端文件? – sysseon

+0

它不是主人,取决于你的应用程序,只是我的结构工程对你更喜欢 – Viktor