djiango 2



请求的转发:1.刷新浏览器重新提交表单 2.只能在项目内部跳转 3.地址没有改变
重定向:一次以上的请求,不能带参数到页面
刷新页面不重复提交表单用重定向解决
return render 返回一个新页面
return redirect 返回一个新页面
return HttpResponse 返回在本页


.objects.get或者filter get获取,filter获取过滤 


登录
views
def login(request):
    if request.method=="GET":
        return render(request,"login.html")
    else:
        uname = request.POST.get("usename")
        pwd = request.POST.get("pwd")
        #从数据库中查询此用户名密码
        blogUserSet=BlogUser.objects.filter(userName=uname,pwd=pwd)
        if len(blogUserSet)==1:
            #跳转到登录的主页面
            return redirect(reverse("user:success",args=[blogUserSet[0].id]))
        else:
            return render(request,"login.html",{"mess":"用户名密码不正确"})
html页面
<form action="/blog/login" method="post">
    {% csrf_token %}
    用户名: <input type="text" name="username" id="username"/><span id="mess">{{ mess }}</span><br>
    密码:<input type="password" name="pwd"><br>
    <input type="submit" value="登录">
blog urls
 path('login',views.login),
 path('success/<int:id>',views.success,name='success')


解决注册用户名重复
利用jqure
<script type="text/javascript" src="/st/jquery/jquery-3.3.1.js"></script>
    <script>
    $(function () {
        $("#username").blur(function () {
            //获取用户名
            var uname=$(this).val();
            var csrftoken=$("input[name='csrfmiddlewaretoken']").val()
            $.ajax({
                url:"/blog/hasname",
                type:"post",
                data:{"uname":uname,"csrfmiddlewaretoken":csrftoken},
                dataType:"String",
                success:function (result) {
                    $("#mess").html(result);


                }
            })
        })
    })
</script>


views需要导入from django.views.decorators.csrf import csrf_protect
@csrf_protect
def hasname(request):
    username=request.POST.get("uname")
    blogUser=BlogUser.objects.filter(userName=username)
    if len(blogUser>0):
        return HttpResponse("用户名已存在")
    else:
        return HttpResponse("该用户名可用")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值