我开始使用Django,但是在尝试执行python3 manage.py runserver
时遇到错误。
fmlg-backend / fmlg / urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from core import views as coreviews
urlpatterns = ['',
url(r'^$', coreviews.home),
path('admin/', admin.site.urls)
]
fmlg-backend / core / views / views.py
from django.shortcuts import render
def home(request):
return render(request, 'core/home.html')
python3 manage.py runserver
输出:
File "/home/florian/Workspace/project/fmlg-backend/fmlg/urls.py", line 22, in <module>
url(r'^$', coreviews.home),
AttributeError: module 'core.views' has no attribute 'home'
我在这里想念什么?
答案 0 :(得分:1)
我认为要从根本上解决问题,您应该将views.py
文件从core/views/
移到core/
。因此,没有特定的views
目录。通常,这就是Django项目的结构方式。
原因是,现在您的from core import views as coreviews
不会 导入views.py
,而是导入您用{构造的“ 隐式”模块{1}}目录。结果,该模块具有名为views
的子模块,该子模块与views
模块相对应。
或者,例如,如果您想在separte文件中构建视图,则可以通过编写以下内容来修复导入:
views.py
但是我不建议这样做,因为通常最好遵循Django的结构。这样做不仅更清洁,而且使其他程序员更容易理解正在发生的事情,而且引入自己的文件结构可能会造成一些麻烦,因为Django通常按一定顺序加载文件,以确保您遵循该结构,所有应加载的元素均已加载。