我开始了我的第一个python-django项目,像任何初学者一样,我已经遇到了一个错误2天了。当我运行我的服务器时,我得到错误:
Exception in thread django-main-thread:
Traceback (most recent call last):
File "C:\Python311\Lib\threading.py", line 1038, in _bootstrap_inner
self.run()
File "C:\Python311\Lib\threading.py", line 975, in run
self._target(*self._args, **self._kwargs)
File "C:\Python311\Lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "C:\Python311\Lib\site-packages\django\core\management\commands\runserver.py", line 133, in inner_run
self.check(display_num_errors=True)
File "C:\Python311\Lib\site-packages\django\core\management\base.py", line 485, in check
all_issues = checks.run_checks(
^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\django\core\checks\registry.py", line 88, in run_checks
new_errors = check(app_configs=app_configs, databases=databases)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\django\core\checks\urls.py", line 14, in check_url_config
return check_resolver(resolver)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\django\core\checks\urls.py", line 24, in check_resolver
return check_method()
^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\django\urls\resolvers.py", line 494, in check
for pattern in self.url_patterns:
^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\django\utils\functional.py", line 57, in __get__
res = instance.__dict__[self.name] = self.func(instance)
^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\django\urls\resolvers.py", line 715, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\django\utils\functional.py", line 57, in __get__
res = instance.__dict__[self.name] = self.func(instance)
^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\django\urls\resolvers.py", line 708, in urlconf_module
return import_module(self.urlconf_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\rt-enterprises\OneDrive\RTSOFTT\PROJECTS\Python Projects\JT_ORDER-FILES\JT_Order\JT_Order\urls.py", line 22, in <module>
path(r'^',include('JTOrderApp.urls')),
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\django\urls\conf.py", line 38, in include
urlconf_module = import_module(urlconf_module)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\rt-enterprises\OneDrive\RTSOFTT\PROJECTS\Python Projects\JT_ORDER-FILES\JT_Order\JTOrderApp\urls.py", line 4, in <module>
from .views import companyApi
File "C:\Users\rt-enterprises\OneDrive\RTSOFTT\PROJECTS\Python Projects\JT_ORDER-FILES\JT_Order\JTOrderApp\views.py", line 6, in <module>
from JTOrderApp import Companies, Supplies, Drivers, Camions, Products, Measures, Orders
ImportError: cannot import name 'Companies' from 'JTOrderApp' (C:\Users\rt-enterprises\OneDrive\RTSOFTT\PROJECTS\Python Projects\JT_ORDER-FILES\JT_Order\JTOrderApp\__init__.py)
我的环境:
asgiref 3.6.0
charset-normalizer 3.1.0
Django 4.2
django-cors-headers 3.14.0
djangorestframework 3.14.0
idna 3.4
mysqlclient 2.1.1
pip 22.3.1
pytz 2023.3
setuptools 65.5.0
sqlparse 0.4.3
tzdata 2023.3
urllib3 1.26.15
这是我的URL。py**file:
from django.urls import path
from JTOrderApp import views
urlpattern=[
path(r'^company$', views.companyApi),
path(r'^company/([0-9]+)$',views.companyApi)
]
和JTOrderApp。url. py
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path(r'^',include('JTOrderApp.urls')),
]
我的views.py文件
@csrf_exempt
def companyApi(request, id=0):
if request.method=='GET':
companies = Companies.objects.all()
companies_serializer=CompanySerializers(companies,many=True)
return JsonResponse(companies_serializer.data,safe=False)
elif request.method=='POST':
company_data=JSONParser().parse(request)
companies_serializer=CompanySerializers(data=company_data)
if companies_serializer.is_valid():
companies_serializer.save()
return JsonResponse("Ajouté avec succès",safe=False)
return JsonResponse("Erreur d'ajout",safe=False)
elif request.method=='PUT':
company_data=JSONParser().parse(request)
company = Companies.objects.get(CompanyId=company_data['CompanyId'])
companies_serializer=CompanySerializers(company,data=company_data)
if companies_serializer.is_valid():
companies_serializer.save()
return JsonResponse("Mise à jour avec succès",safe=False)
return JsonResponse("Erreur de mise jour",safe=False)
elif request.method=='DELETE':
company = Companies.objects.get(CompanyId=id)
company.delete()
return JsonResponse("Elément supprimé avec succès",safe=False)
最后是我的设置。pyfile:
INSTALLED_APPS = [
# 'JTOrderApp.apps.JtorderappConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'corsheaders',
'JTOrderApp',
]
以下是我的项目的结构:x1c 0d1x请问错误的原因是什么?先谢谢你了。
2条答案
按热度按时间k10s72fa1#
您的项目文件夹结构正常。过去和现在仍然令人困惑的是你的网址。py文件。我想你把它们颠倒了。
我认为,错误的原因是您的JTOrderApp.www.example中的循环导入 www.example.com**你正在做
path(r'^',include('JTOrderApp.urls')),
,换句话说,你正在导入JTOrderApp
的网址到JTOrderApp
的网址。py文件。解决方案:
将 this 设为您的JT_Order。url. py
并将以下内容设置为您的JTOrderApp。urls.py:
建议:当开始一个新项目时,我总是调用项目config,如
因为所有的配置文件都在那里(设置。py)和 root url。
bvjveswy2#
我找到了解决问题的办法。首先我改变了
因此,在我使用r '^'的地方,我使用re_path而不是path来避免错误。
第二,这就是我的问题所在;我的模型导入在我的
serializers.py
文件中不好,我把from JTOrderApp import Companies
改为from JTOrderApp.models import Companies
(新手错误,导入时要小心)。现在一切都很好,我感谢你们所有人的干预,帮助我找到了解决办法。