登录后台逻辑一

一、测试:实现主页面,并跳转到登录页面

url.py

from django.views.generic import TemplateView
urlpatterns = [
  url('^$',TemplateView.as_view(template_name="index.html"), name="index"),

url('^login/$',TemplateView.as_view(template_name="login.html"), name="login"),
]

index.py 搜索登录,将将href改为href=”/login/”

 <a style="color:white" class="fr loginbtn" href="/login/">登录</a>

二、登录后台逻辑

urls.py添加:

from users.views import user_login
urlpatterns = [url('^$',TemplateView.as_view(template_name="index.html"), name="index"),
url(‘^login/$’, user_login, name=”login”)
]

在users 中views.py:

from django.contrib.auth import authenticate, login
def user_login(request):
    if request.method == "POST":
        user_name = request.POST.get("username", "")
        pass_word = request.POST.get("password", "")
        user = authenticate(username=user_name, password=pass_word)
        if user is not None:
            login(request, user)
            return render(request, "index.html")
        else:
            return render(request, "login.html", {"msg":"用户名或密码错误!"})
    elif request.method == "GET":
        return render(request, "login.html", { })

index.html中添加:
1.
{% if request.user.is_authenticated %}
此处添加登录后的代码
{% else %}
未登录代码
{% endif %}
2.加{{ msg }}
class=”error btns login-form-tips” id=”jsLoginTips”>{{ msg }}

三、添加使用邮箱登录:

views.py中添加:

from django.contrib.auth.backends import ModelBackend
from django.db.models import Q

from .models import UserProfile


class CustomBackend(ModelBackend):
    def authenticate(self, username=None, password=None, **kwargs):
        try:
            user = UserProfile.objects.get(Q(username=username) | Q(email=username))
            if user.check_password(password):
                return user
        except Exception as e:
            return None

setting.py中添加:

AUTHENTICATION_BACKENDS = (
    'users.views.CustomBackend',
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值