在设置Django
应用时,我想在main_app/views.py
中导入url.py
main project folder
中的。 main_app
文件夹与main project folder
平行。
这是我在views.py
中导入main project folder\url.py
的方式:
import sys
sys.path.append('../main_app')
from django.conf.urls import url
from django.contrib import admin
from django.urls import path
from main_app import views
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^', 'main_app.urls'),
]
但是,我收到ModuleNotFoundError: No module named 'main_app'
答案 0 :(得分:1)
您可以删除它,它没有用
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.conf.urls import include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('main_app.urls')),
]
这应该很好用
答案 1 :(得分:1)
如果您使用
https://docs.djangoproject.com/en/2.0/intro/tutorial01/#creating-the-polls-app
python manage.py startapp main_app
您发布的代码应该没有问题,因为在每个项目中创建的每个应用程序都可以自动使用。
根据文档,它应如下所示:
main_project/
main_app/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
然后将应用添加到settings.py:
# Application definition
INSTALLED_APPS = [
'main_app.apps.FooConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
如果出于某种原因创建了自定义文件夹,以使其可以在项目中使用,则必须在该文件夹的根目录中添加一个__init__.py
文件。
main_project/
my_custom_lib/
__init__.py
my_custom_methods.py
然后,如果您要调用它
from my_custom_lib import my_custom_methods
答案 2 :(得分:0)
我仍然遇到与ModuleNotFoundError
相同的错误,但是项目url调度程序现在可以调用main_app
url调度程序,并且可以加载网页。
我已将settings.py
更新为包括main_app
。
INSTALLED_APPS = [
'main_app',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
,还更新了main_app\urls.py
并添加了from . import views
from django.conf.urls import url
from . import views
urlpatterns= [
url(r'^$',views.index),
]