如何在django下建立多个app

来源:互联网 发布:拍电影需要什么软件 编辑:程序博客网 时间:2024/05/29 17:10

django是MTV模式,即template(页面展现),modle(数据库表对象),view(业务逻辑处理),在开发中发现,随着项目功能的增多,把所有的功能模块放在一个app肯定不切实际,也不符合网站开发的原则。下图是我在做的一个数据可视化分析平台,项目名:integrated_display 两个app:分别是 contentms 和 display,建立app的命名很简单,Python

manage.py startapp appname即可,这里重点说明的是,针对不同的app在同一个项目下,1::对应静态资源(html,css,js)的访问如何区分开来,2:不同app的url如何书写


解决第一个问题:如下图所示,展现是contentms 下面的文件,一般新建app,直接在app里面,新建templates和static文件夹,然后将对应的文件放入到里面就行,但是当项目中建立多个app,解决同名冲突,需要在templates下再创建一个文件夹,这样就解决假设有两个app中都有main.html页面,到底跳转到哪个页面的问题,在views.py文件页面跳转 render中在html前加上外面的文件夹的名称,这里是cms,如return  render(request,'cms/program.html',{'authority':authority,}),同样在静态文件里面也新建cms文件夹,静态文件内容放入到cms里面,访问静态文件形式 如:<link href="{% static 'cms/css/sweetalert.css'%}" rel="stylesheet"/>,这样问题1就解决了


问题2:

项目的url.py文件内容  

urlpatterns = [
     url(r'^admin/', admin.site.urls),
     url(r'^cms/', include('contentms.urls', namespace="cms")),
     url(r'^display/', include('display.urls', namespace="display")),
]

app contentms的url.py文件内容                            

urlpatterns = [
      url(r'^admin/', admin.site.urls),
      url(r'^$', views.login, name='login'),

]

app  display的url.py文件内容:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # url(r'^$', views.platform, name='platform'),
    url(r'^$', views.login, name='login'),
    url(r'^channel/$',views.channel,name='channel'),
    url(r'^program/$',views.program,name='program'),

]

其他按照正常的操作即可,这样即可实现一个项目中建立多个app