请求的转发: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("该用户名可用")
重定向:一次以上的请求,不能带参数到页面
刷新页面不重复提交表单用重定向解决
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("该用户名可用")