无法导入名称“视图”,.Python,Django

时间:2018-07-13 14:29:28

标签: python django

我在这个论坛上读了很多答案,但是它们不能解决我的问题。我将非常感谢您的帮助。

我的文件views.py返回此错误:

from . import views
ImportError: cannot import name 'views' from '__main__' (C:/Users/tymot/Desktop/weather app/env/Environemnt/the_weather/weather/views.py)

views.py(环境\ the_weather \天气)

from django.shortcuts import render
from django.contrib import admin

def index(request):
    return render(request, 'weather/index.html') #returns the index.html 

urls.py(环境\ the_weather \天气)

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index),  #the path for our index view
]

urls.py(环境\ the_weather \ the_weather)

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('weather.urls')),

模板(the_weather \ weather \ templates \ weather) 仅文件index.html

目录

-the_weather
--the_weather
---__init__
---setting
---urls
---wsgi
--weather
---migrations
----__init__
---templates
----weather
-----index
---__init__
---admin
---apps
---models
---tests
---urls
---views
--db
--manage.py

我尝试用from __future__ import absolute_importhomepage import views解决问题。我还要尝试将views.py复制到目录模板(并修改其代码),但不幸的是它不起作用

6 个答案:

答案 0 :(得分:2)

您需要将viewsurls分开,在您的应用中创建一个新模块(文件)urls.py,在您的情况下为weather文件夹,然后添加在此处进行编码,并将其从views.py中删除,您可以阅读here以便对其有更好的了解。

路径the_weather/weather/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index),  #the path for our index view
]

路径the_weather/weather/views.py

from django.shortcuts import render
from django.contrib import admin

def index(request):
    return render(request, 'weather/index.html') #returns the index.html template

答案 1 :(得分:0)

你为什么不这样尝试

from .views import index

答案 2 :(得分:0)

可能有单独的url和views.py文件夹 你要做的就是写 从应用程序名称导入视图 假设您的应用名称是myapp 你必须写 从myapp导入视图中

答案 3 :(得分:0)

使用过程中应在天气中创建新的url.py并在views.py中编写代码

url.py

from django.urls import path
from . import views
urlpatterns = [
   path('', views.index, name='index')
]

在您的项目的urls.py中编写代码

from django.urls import path, include
from . import views
urlpatterns = [
   path('wheather/',include('wheather'))
]

答案 4 :(得分:0)

我遇到了类似的问题,但直到我在根目录中添加了一个空的views.py时,问题才得以解决,在您的情况下,将其添加到Environemnt \ the_weather \ the_weather

答案 5 :(得分:0)

您需要将您的 views.py 文件放在您的天气文件夹中。确保它在正确的天气文件夹中,我猜你有两个天气文件夹。还要确保这些代码是正确的;

#Path : the_weather/weather/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index),  #the path for our index view
]

#Path : the_weather/weather/views.py

from django.shortcuts import render
from django.contrib import admin

def index(request):
    return render(request, 'weather/index.html') #returns the index.html template