从应用程序目录导入views.py

时间:2018-07-30 01:20:36

标签: python django

在设置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'

3 个答案:

答案 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),
]