django.urls、django rest 和 django-cors-headers - 导入问题

Posted

技术标签:

【中文标题】django.urls、django rest 和 django-cors-headers - 导入问题【英文标题】:django.urls, django rest and django-cors-headers - trouble with imports 【发布时间】:2021-05-24 11:54:46 【问题描述】:

(注意:django-cors-headers 的问题已解决 - 我只是在 settings.py 文件中的 INSTALLED_APPS 中缺少一个逗号)

当我激活我的虚拟环境和我写这个命令时 -

pip list

结果是 -

asgiref             3.3.1
Django              3.1.6
django-cors-headers 3.7.0
djangorestframework 3.12.2
pip                 21.0.1
pytz                2021.1
setuptools          52.0.0
sqlparse            0.4.1
wheel               0.36.2

但我仍然收到错误,如下所列 -

在 urls.py 文件中 -

No name 'path' in module 'django.urls'
No name 'include' in module 'django.urls'

在views.py文件中-

Unable to import 'rest_framework.decorators'
Unable to import 'rest_framework.response'

可以在这篇文章中找到错误来自的文件的完整代码 - A large number of problems with React, Django, Django REST and Axios


(以下问题(关于 django-cors-headers)已解决)


当我尝试运行时 -

python manage.py makemigrations

我收到以下错误 -

ModuleNotFoundError: No module named 'corsheadersbase'

但是我已经安装了 django-cors-headers 并且我已经将它实现到了 settings.py 正如这里建议的那样 - https://pypi.org/project/django-cors-headers/

settings.py 代码的相关部分-

INSTALLED_APPS = [
    ...    
    'rest_framework',
    'corsheaders',
    ...
]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
     ...
]

CORS_ALLOW_ALL_ORIGINS = True

解决这些小错误对我真的很有帮助。有人可以给我一些提示吗? 非常感谢您。

【问题讨论】:

我能看到的唯一原因是您正在运行的manage.py 正在获取wrong python executable,检查安装的python 版本并使用正确的版本运行manage.py,可能是python3 manage.py XXX 与对应于您的应用程序或检查manage.py 文件中的shebang 我的全局python版本是3.8.5,和虚拟环境中的版本一样。运行这个特定版本的命令会是什么样子?很抱歉,但我不确定 shebang 是什么。 #!/usr/bin/python3 in manage.py 我相信您只有在激活 virtualenv 后才运行 manage.py 命令 我明白了。这是 manage.py 文件的第一行。你是对的。当谈到 django 时,我总是使用虚拟环境。 您是否也通过在虚拟环境中打开 python shell 来测试导入? 【参考方案1】:

您必须将这些库添加到 settings.py 文件中的 INSTALLED_APPS

INSTALLED_APPS = [
    'corsheaders',
    'rest_framework',
    ...
]

【讨论】:

我这样做了 - 我正在引用 settings.py 文件作为被照顾。

以上是关于django.urls、django rest 和 django-cors-headers - 导入问题的主要内容,如果未能解决你的问题,请参考以下文章

django.urls.exceptions.NoReverseMatch 基于类的列表视图

没有反向匹配 - django.urls.exceptions.NoReverseMatch

Django - 显示所有的urls

Django URLS,如何将根映射到应用程序?

django urls

在 Django Urls 中将 URL 作为参数传递