Django 实现登录后跳转

本文介绍了Django实现登录后跳转的两种情况:登录成功和登录失败后再登录成功。通过在前后端传递跳转链接确保登录失败后仍能跳转。文中给出了后端views.py和前端login.html的代码示例。
摘要由CSDN通过智能技术生成

Django 实现登录后跳转

说明

实现网页登录后跳转应该分为两类:即登录成功后跳转登录失败再次登录成功后跳转。参考网上内容,基本都只实现了第一类。而没有实现第二类。

实现

为了能让登录失败后再次登录成功后还能实现跳转。我这里采用了笨办法, 即:无论登录成功与否,都将跳转链接在前后端进行传递 ,这样跳转链接就不会在登录失败后消失。不多说,上代码

  1. 后端 views.py
from django.shortcuts import render, redirect

def login(request):
    # 当前端点击登录按钮时,提交数据到后端,进入该POST方法
    if request.method == "POST":
        # 获取用户名和密码
        username = request.POST.get("username")
        passwd = request.POST.get("password")
        # 在前端传回时也将跳转链接传回来
        next_url = request.POST.get("next_url")

        # 对用户进行验证,假设正确的用户名密码为"aaa", "123"
        if username == 'aaa' and passwd == '123':
            # 判断用户一开始是不是从login页面进入的
            # 如果跳转链接不为空并且跳转页面不是登出页面,则登录成功后跳转,否则直接进入主页
            if next_url and next_url != "/logout/":
                response = redirect(next_url)
            
  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django实现登录跳转,可以通过以下步骤实现: 1. 在 `views.py` 中创建登录视图函数,使用 Django 自带的 `login` 函数进行用户登录验证,如果验证通过,则使用 `redirect` 函数将用户重定向到目标页面。 ```python from django.contrib.auth import authenticate, login from django.shortcuts import render, redirect def login_view(request): if request.method == 'POST': username = request.POST['username'] password = request.POST['password'] user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return redirect('target_page') else: # 登录失败的处理 else: # 显示登录页面 return render(request, 'login.html') ``` 2. 在 `urls.py` 中将登录视图函数绑定到对应的 URL 上。 ```python from django.urls import path from . import views urlpatterns = [ path('login/', views.login_view, name='login'), # 其他 URL ] ``` 3. 在 HTML 页面中创建登录表单,将表单发送到登录视图 URL 上。 ```html <form method="post" action="{% url 'login' %}"> {% csrf_token %} <label for="username">用户名:</label> <input type="text" name="username" required> <br> <label for="password">密码:</label> <input type="password" name="password" required> <br> <button type="submit">登录</button> </form> ``` 其中 `{% url 'login' %}` 表示将 URL 名称 `login` 转换为对应的 URL,防止 URL 填写错误。`{% csrf_token %}` 是 Django 提供的防跨站攻击保护机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值