Django项目中新增App的两种方法及多App配置详解
本文介绍在Django项目中新增App的两种常用方法:通过PyCharm工具栏或命令行执行startapp命令。创建后需在settings.py中注册。针对多App场景,重点讲解如何通过目录结构区分静态资源,并在urls.py中配置不同App的路由映射,解决同名文件冲突及URL路由问题。
Django新增App的两种基础方法
第一种方法是通过IDE图形界面操作。在pycharm集成开发环境的顶部菜单栏中定位到 Tools 菜单项,点击该选项后展开子菜单,选择“Run manage.py task”功能。此时在pycharm下方的控制台输入区域中,准备输入创建指令。
“startapp appName(你的App名称)”
确认输入无误后按下回车键执行,系统将在工程目录下自动生成对应的新建App文件夹及其初始文件结构。
第二种方法更为直接,适用于熟悉命令行的开发者。直接在底部的终端或命令行窗口中执行以下命令:
python manage.py startapp appName(You are appName)
执行成功后,App即创建完成,无需额外配置即可在项目中识别。
需要注意的是,App创建完成后必须将其注册到项目中才能生效。请找到与django项目名称同名的根包目录,打开其中的settings.py配置文件。定位到INSTALLED_APPS配置项列表,将新添加的app名称字符串追加到列表的最后一行,注意末尾需保留逗号。完成此步骤后,app的创建与注册才算彻底完成。
注意:上述两种方法成功执行的前提是当前Django项目中不存在其他未解决的报错或配置错误,否则可能导致App无法正确生成或注册。
多App项目配置与路由管理
补充知识:如何在django下建立多个app
Django采用MTV设计模式,分别对应template(模板展示)、model(数据模型)和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="external nofollow" rel="stylesheet"/>,
这样问题1就解决了

多App URL路由配置
问题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
以上这篇django项目中新增app的2种实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













