美文网首页
6-3-登陆-2

6-3-登陆-2

作者: 11010tianyi | 来源:发表于2017-01-26 10:53 被阅读0次

    通过邮箱登陆

    • 在setting中重载变量(是一个元组方法)

    <code>AUTHENTICATION_BACKENDS = (
    'users.views.CustomBackend',
    )</code>

    元组一点要加“,”


    • 在users的views.py写入一个类(该类里这个方法会被django自动调用)

    <code>from django.contrib.auth.backends import ModelBackend
    from .models import UserProfile
    class CustomBackend(ModelBackend):
    def authenticate(self, username=None, password=None, **kwargs):
    try:
    user = UserProfile.objects.get(username = username)
    if user.check_password(password): #UserProfile继承的是AbstractUser的方法#
    return user
    except Exception as e:
    return None
    </code>

    django密码存储的是密文,无法查询
    UserProfile继承的是AbstractUser


    • 在viwes.py中以下三行打断点进行Debug

    <code>
    try:
    user = UserProfile.objects.get(username = username)
    if user is not None:
    </code>

    F8完成当前debug F6调试进入debug下一步


    • 在元组中做并集以使邮箱 手机号等 都能登陆

    <code>
    from django.db.models import Q
    user = UserProfile.objects.get(Q(username = username)|Q(email=username))
    </code>

    并集的查询 也可以做并集和交集的混用 在后面加,即可加入


    用户密码错误提醒
    <code>else:
    return render(request, "login.html", {"msg":"用户名或密码错误!"})</code>

    在view中加入msg
    再到login中加入{{ msg }}

    相关文章

      网友评论

          本文标题:6-3-登陆-2

          本文链接:https://www.haomeiwen.com/subject/vtlxittx.html