1.默认不输入路径跳转到首页
from
project
import
urls
as
project
urlpatterns
=
[
url
(
'
^$
'
,
project
.
views
.
ProjectList
.
as_view
())
]
@method_decorator
(
csrf_exempt
,
name
=
"
dispatch
"
)
2.判断用户是否登陆:
LoginRequiredMixin-----后台验证
{% request.user.is_authrnticated %} ------前端验证
3.实现邮箱登陆:
引包:
from
django
.
contrib
.
auth
.
backends
import
ModelBackend
from
django
.
db
.
models
import
Q
class CustomBackend(ModelBackend):
def
authenticate
(
self
,
username
=
None
,
password
=
None
,
**
kwargs
):
try
:
user
=
User
.
objects
.
get
(
Q
(
username
=
username
)|
Q
(
email
=
username
))
if
user
.
check_password
(
password
):
return
user
except
Exception
as
e
:
return
None
配置settings文件
AUTHENTICATION_BACKENDS
=
(
'
project.views.CustomBackend
'
,
)
4.对前端传过的信息的验证:
from
project
.
froms
import
LoginFrom
login_from
=
LoginFrom
(
request
.
POST
)
if
login_from
.
is_valid
():
return
render
(
request
,
'
登录.html
'
,
{
"
msg
"
:
"
缺水用户名或密码
"
})
新建一个froms.py文件专门做信息验证
from
django
import
forms
#验证登陆页面的信息
class LoginFrom(forms.Form):
username
=
forms
.
CharField
(
required
=
True
)
password
=
forms
.
CharField
(
required
=
True
)