在学习《Python编程从入门到实践》中
经常会因为python编译器和Django的版本不同,出现程序Bug,下面总结一个典型Bug:
关于TypeError:cannot import name ‘login’问题解决
原文
“”" 为应用程序 users 定义 URL 模式 “”"
from django.conf.urls import url
from django.contrib.auth.views import login
from . import views
urlpatterns = [
#登录页面
url(r’^login/$’, login, {‘template_name’: ‘users/login.html’},
name=‘login’),
]
方法一:
(只针对python 3.7 Django 2.1)
修改后
“”“为应用程序users定义URL模式”""
from django.contrib.auth.views import LoginView
from .import views
app_name=‘users’
urlpatterns =[
#登录页面
url(r'^login/$',LoginView.as_view(template_name='users/login.html'),name='login'),
]
方法二:
(只针对python 3.6 Django 2.1)
修改后
“”“为应用程序users定义URL模式”""
from django.contrib.auth.views import LoginView
from django.urls import path
from .import views
app_name=‘users’
urlpatterns =[
#登录页面
path(‘login/’,LoginView.as_view(template_name=‘users/login.html’),name=“login”),
]
在2.1版本,基于登录的、注销等基于功能的视图已被重新使用之前版本URL:longin在2.1变为LoginView
All authentication views
This is a list with all the views django.contrib.auth provides. For implementation details see Using the views.
class LoginView
URL name: login
See the URL documentation for details on using named URL patterns.
附带Django2.1官方文档地址
扫码关注本人微信公众号,有惊喜奥!公众号每天定时发送精致文章!回复关键词可获得海量各类编程开发学习资料!
例如:想获得Python入门至精通学习资料,请回复关键词Python即可。