Ala*_*air 178 python django django-urls django-4.0
升级到Django 4.0后,运行时出现以下错误python manage.py runserver
...
File "/path/to/myproject/myproject/urls.py", line 16, in <module>
from django.conf.urls import url
ImportError: cannot import name 'url' from 'django.conf.urls' (/path/to/my/venv/lib/python3.9/site-packages/django/conf/urls/__init__.py)
Run Code Online (Sandbox Code Playgroud)
我的urls.py如下:
from django.conf.urls
from myapp.views import home
urlpatterns = [
url(r'^$', home, name="home"),
url(r'^myapp/', include('myapp.urls'),
]
Run Code Online (Sandbox Code Playgroud)
Ala*_*air 279
django.conf.urls.url()在 Django 3.0 中已弃用,并在 Django 4.0+ 中删除。
最简单的修复方法是替换url()为re_path(). re_path使用诸如 之类的正则表达式url,因此您只需更新导入并替换url为re_path.
from django.urls import include, re_path
from myapp.views import home
urlpatterns = [
re_path(r'^$', home, name='home'),
re_path(r'^myapp/', include('myapp.urls'),
]
Run Code Online (Sandbox Code Playgroud)
或者,您可以切换到使用path. path()不使用正则表达式,因此如果切换到路径,则必须更新 URL 模式。
from django.urls import include, path
from myapp.views import home
urlpatterns = [
path('', home, name='home'),
path('myapp/', include('myapp.urls'),
]
Run Code Online (Sandbox Code Playgroud)
如果您有一个需要更新许多 URL 模式的大型项目,您可能会发现django-upgrade库对于更新您的urls.py文件很有用。
小智 73
我认为解决这个问题的快速方法是执行以下操作;
您可以轻松更换
from django.conf.urls import url
Run Code Online (Sandbox Code Playgroud)
对此:
from django.urls import re_path as url
Run Code Online (Sandbox Code Playgroud)
并使其余代码与以前相同。(感谢@Alasdair)
| 归档时间: |
|
| 查看次数: |
204545 次 |
| 最近记录: |