Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django如何在项目文件夹中搜索模块/应用程序_Django - Fatal编程技术网

Django如何在项目文件夹中搜索模块/应用程序

Django如何在项目文件夹中搜索模块/应用程序,django,Django,这个问题与下列问题有关 实际上,我有以下项目结构 我想问一下,为什么我必须使用完整路径链接来指向已安装的应用程序中的应用程序,甚至是django文件中的任何地方 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages

这个问题与下列问题有关

实际上,我有以下项目结构

我想问一下,为什么我必须使用完整路径链接来指向
已安装的应用程序中的应用程序,甚至是django文件中的任何地方

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'climemanage.clients',
]
为什么我不能在已安装的应用程序中仅使用
import climemanage.clients
(或任何其他导入语句)和使用
clients

对于urls.py文件也是一样,我必须使用完整路径作为
climemanage.clients.urls

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('clients/', include('climemanage.clients.urls')),
]

为什么不只是
客户端.url
?当我尝试只使用
clients.url时,它给出了
模块未找到的“clients”
,因为Django在项目初始化时做了很多事情,需要按特定顺序加载模块。在设置中导入东西会让事情变得复杂,因为在Django能够做任何事情之前,导入已经执行了代码

因此,INSTALLED_APPS是一个字符串列表,当Django准备加载模块时,这些字符串使用importlib的导入模块
。这是在
django.apps.config
中完成的


如果要缩短路径,可以将该路径添加到环境变量中,但请仔细考虑,因为路径越多,出现重复名称的可能性就越大。在配置文件中尝试并保存键入的内容通常不是一项很好的时间和资源投资,因为一旦完成配置,就很难返回到配置文件中。

您可以在include方法中编写clients.url。你可以在“已安装”中只写下你的应用程序名称-apps@RezaGH它不允许我写,它给出了
客户端
模块未找到错误。为什么你的应用程序位置在你的项目文件夹中。也许你的错误就是因为这个