gpt4 book ai didi

Django 无法导入 [函数]。路径必须完全限定

转载 作者:行者123 更新时间:2023-12-04 19:41:56 25 4
gpt4 key购买 nike

我最近启动了 Django,但在呈现“hello world”页面时遇到了问题,问题是这样的:

Could not import 'index'. The path must be fully qualified.

Django 没有检测到我的 views.index 函数

代码如下:

src/urls.py

from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^pages/', include('pages.urls')),
]

pages/urls.py

from django.conf.urls import url

urlpatterns = [
url(r'', 'index', name="index"), #error
]

pages/views.py

from django.shortcuts import render

# Create your views here.
def index(request):
context = {}
return render('index.html', context)

我想渲染 index.html,我该怎么做?

----------------更新----------------

命令错误

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x00000000044D70D0>
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "C:\Python34\lib\site-packages\django\core\management\commands\runserver.py", line 116, in inner_run
self.check(display_num_errors=True)
File "C:\Python34\lib\site-packages\django\core\management\base.py", line 426, in check
include_deployment_checks=include_deployment_checks,
File "C:\Python34\lib\site-packages\django\core\checks\registry.py", line 75, in run_checks
new_errors = check(app_configs=app_configs)
File "C:\Python34\lib\site-packages\django\core\checks\urls.py", line 10, in check_url_config
return check_resolver(resolver)
File "C:\Python34\lib\site-packages\django\core\checks\urls.py", line 19, in check_resolver
for pattern in resolver.url_patterns:
File "C:\Python34\lib\site-packages\django\utils\functional.py", line 33, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Python34\lib\site-packages\django\core\urlresolvers.py", line 417, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "C:\Python34\lib\site-packages\django\utils\functional.py", line 33, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Python34\lib\site-packages\django\core\urlresolvers.py", line 410, in urlconf_module
return import_module(self.urlconf_name)
File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1129, in _exec
File "<frozen importlib._bootstrap>", line 1471, in exec_module
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "C:\Python34\Scripts\src\src\urls.py", line 26, in <module>
url(r'^pages/', include('pages.urls')),
File "C:\Python34\lib\site-packages\django\conf\urls\__init__.py", line 52, in include
urlconf_module = import_module(urlconf_module)
File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1129, in _exec
File "<frozen importlib._bootstrap>", line 1471, in exec_module
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "C:\Python34\Scripts\src\pages\urls.py", line 5, in <module>
url(r'^$', views.index, name="index"),
AttributeError: 'module' object has no attribute 'index'

在 urls.py 中添加了from pages import views

最佳答案

在 Django 1.8+ 中,您应该导入 View 并在您的 URL 模式中包含可调用对象。

from .views import index

urlpatterns = [
...
url(r'^$', index, name="index"),

请注意,第二个参数现在是 index,即我们导入的 View ,而不是字符串 'index'。我还更改了正则表达式,以便它只匹配索引页。使用 '' 将匹配每个 URL。

另一种选择是导入 views 模块而不是单独的 View 。这将使包含其他 View 变得更容易,例如views.aboutviews.contact

from . import views

urlpatterns = [
...
url(r'^$', views.index, name="index"),

关于Django 无法导入 [函数]。路径必须完全限定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34751756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com