我有以下项目结构。
这是我的 INSTALLED_APPS 数组。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'climemanage.clients'
]
然后我尝试在父 urls
文件中添加 clients.urls
文件,如下所示。
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('clients/', include('clients.urls'))
]
但是我收到了这个错误。 ModuleNotFoundError:没有名为“clients”的模块
我可以使用以下路径解决这个问题。 include('climemanage.clients.urls')
但我想从路径中跳过 climemanage
。
我尝试过不同的方法,
import clients
import climemanage.clients
from climemanage import clients
但是没有任何效果。
最佳答案
您的项目结构错误。看来要么 startproject
部分或startapp
部分可能出了问题。如果您能列出您是如何走到这一步的,那可能是最好的。请参阅我在答案末尾放置的结构。
就您而言,您的主要 settings.py
位于clients
下。这意味着clients
是 startproject
的结果。目前您没有app
,但是您有一堆应该以 app
出现的文件现在在migrations
下文件夹。
因此,您将永远无法添加 clients.urls
中的任何内容到主 urls.py
。因为你的clients
是你主要的地方urls.py
位于。
我把我平时做的放在这里(这个是mac版本,如果你用的是windows,需要查看django教程)
$ mkdir clienmanage
$ cd clienmanage
$ python3 -m venv myvenv # set up virtual environment
$ source myvenv/bin/activate # go into virtual envionment
After this step you can install django
然后,当您运行 startproject
时命令,确保像下面这样运行:
django-admin startproject project .
注意 .
在最后。
之后,您应该具有如下结构:
clienmanage
|--- manage.py
|--- project
| |--- __init__.py
| |--- settings.py
| |--- urls.py
| |--- wsgi.py
|--- virtual
|
|___ requirements.txt
然后你会:
$ python manage.py startapp clients
clienmanage
|
|---clients # this is the app
| |---migrations
| |---models.py
| |---views.py
| |---apps.py
|--- manage.py
|--- project
| |--- __init__.py
| |--- settings.py
| |--- urls.py
| |--- wsgi.py
|--- virtual # a folder
|
|___ requirements.txt
这一步之后django就不会自动生成app
了级别 urls.py
和forms.py
。您应该在 app
内生成这些文件文件夹(在我的示例中, clients
)
****如果您想将应用程序放在不同的目录中 您可以指定目的地。
$ python manage.py startapp <app_label> [destination]
在上述情况下,如果您想要 app
project
里面
$ python manage.py startapp clients project/clients
如果您选择此路线,请务必添加 project.clients
而不是clients
在你的INSTALLED_APPS
.
关于python - 如何从 django 主 url 文件中的应用程序导入 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65090684/