django网页内通过链接转到其他的页面

本文介绍了如何在Django框架下实现用户登录和注册页面的跳转。通过设置URL路由别名,实现了在登录页面中点击注册链接跳转到注册页面的功能。当用户在登录页面提交表单时,如果验证失败会显示错误信息,成功则重定向到搜索页面。
摘要由CSDN通过智能技术生成

问题的背景,用户到网页的登录的页面,发现没有账号,就需要跳转到注册的页面,今天我们就看看这个跳转的实现。

首先我们需要给我们的路由取一个别名

如:

文件位置urls.py

给路由设置一个别名,在其他地方引用别名,修改路由,不会影响其他地方运行。
路由别名用在两个地方,一是html模板中转到另外一个页面,另外一个就redirect到某一个网页
html中的使用方法: {% url  '别名' %} 在a标签的href属性
在视图中的用法 return redirct(reverse('别名'))

urlpatterns = [

 path('login/', views.login),
 path('register/', views.register, name='register'),
#给路由设置一个别名,在其他地方引用别名,修改路由,不会影响其他地方运行。
#路由别名用在两个地方,一是html模板中转到另外一个页面,另外一个就redirect到某一个网页
#html中的使用方法: {% url '别名' %} 在a标签的href属性
#在视图中的用法 return redirct(reverse('别名'))
]

//

可以直接跳过这个部分

接下来访问就是看视图中的views.login函数:

登陆函数

这部分需要用户输入的密码和用户名在数据库中的相匹配就可以进入到搜索网页,否则显示登录不成功

def login(request):
    if request.method == "GET":
        return render(request, "login.html")
    if request.method == "POST":
        username = request.POST.get("username")
        password = request.POST.get("pwd")
        if auth.authenticate(username=username,password=password):  
            user_obj = auth.authenticate(username=username, password=password)
            print(user_obj.username)  # 在cmd页面显示打印内容
            return render(request, 'search_form.html')
        else:
            return render(request, 'wrong.html')

再看login.html:实现跳转功能

实现跳转功能

 <a href="{% url 'register' %}">注册</a>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>
</head>
<body>
    <h1>登录</h1>
    <form  action='/login/' method="post">
        用户名:<input type="text" name="username" style="margin-left:18px;margin-top:20px" autocomplete="off"><br>
        密  码:<input type="password" name="pwd" style="margin-left:30px;margin-top:20px" autocomplete="off"><br>
        <input type="submit" value="登录" style="margin-left:80px;margin-top:20px"><br>
    </form>

    <p>如果没有账号,请先进行注册<p><br/>
    <a href="{% url 'register' %}">注册</a>
</body>
</html>

显示效果,到登录界面,点击注册跳转到登录界面。

 

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值