插件分页:
<head>
<meta charset="UTF-8">
<title>插件分页</title>
</head>
<body>
<h6>{{ request.session.username }}</h6>
{% for blog in pages %}
标题 <a href="/blogmanager/blogDetail/">{{ blog.title }}</a>
作者 {{ blog.blogUser.userName }}
创建时间{{ blog.createTime | date:"Y年m月d日H:i:s"}}
{% endfor %}
{% for i in pg.page_range %}
<a href="/blogmanager/Show/{{ i }}">{{ i }}</a>
{% endfor %}
<a href="/blogmanager/Show/1"></a>
{% if pages.has_previous %}
<a href="/blogmanager/Show/{{ pages.number | add:-1 }}">上一页</a>
{% endif %}
{% if pages.has_next %}
<a href="/blogmanager/Show/{{ pages.number | add:-1 }}">上一页</a>
{% endif %}
<a href="/blogmanager/Show/{{ pages }}">尾页</a>
</body>
插件分页:
def Show(request,pageNo=1):
# if request.POST.get("pageNo") is not None:
# pageNo=int(request.POST.get("pageNo"))
# pageSize = 4
# pg=Paginator(Blog.objects.all().order_by("-createTime"),pageSize)#得到所有对象
# #返回博客详细信息
# pages=pg.page(pageNo)
# return render(request,"manager/Fenye.html",{"pg":pg,"pages":pages})
#博客回复
def replyh(request):
if request.session.get("username") is None:
return render(request, "login.html")
else:
#获取blog的id,回复内容
bid=int(request.POST.get("id"))
replyContent=request.POST.get("replyContent")
#回复内容存储回复表中
myreply=ReplyBlog()
myreply.content=replyContent
myreply.replyUser=BlogUser.objects.filter(userName=request.session.get("username")).first()
myreply.blog=Blog.objects.get(pk=bid)
myreply.save()
#查询当前所有回复记录
replylist=ReplyBlog.objects.filter(blog_id=bid)
#将replylist转换成json格式
jsonobj=serialize('json',replylist)#表单用serialize()序列化并且通过ajax向后台传值,
return HttpResponse(jsonobj)
在详细信息页面detail里进行回复:
<style type="text/css">
.replydv1{
background-color: rgba(162,255,122,.3);
color: plum;
}
.replydv2{
background-color: rgba(151,255,215,.3);
color: plum;
}
</style>
<script src="/static/js/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function () {
//当点击回复按钮时,获取回复内容,给按钮添加点击事件
$("input[type='button']").click(function () {
val=$('#reply').val();
var crsf=$("input[name='csrfmiddlewaretoken']").val();
{#如果用户名为空#}
if(val.trim().length==0 || val==null){
$("#tespan").html("回复内容不能为空")
}
else {
$.ajax({
url:"/blogManage/replyh/",
type:"post",
data:{"id":{{blog.id}},replyContent:val,"csrfmiddlewaretoken":crsf},
dateType:"json",
sussess:function (response,data) {
//console.error(data);
var str=" ";
$.each(response,function (i,item) {
//response为返回结果,是一个array,然后对该array进行遍历,fields属性中包含所有查询内容,pk为每条结果的主键字段
var vfields=item.fields;
if(i%2==0){str="<div class='replydv1'>回复内容:"+vfields.content+" 回复时间:"+vfields.replyTime+" 回复人:{{ request.session.username }}</div>"+str;
}
else {
str="<div class='replydv2'>回复内容:"+vfields.content+" 回复时间:"+vfields.replyTime+" 回复人:{{ request.session.username }}</div>"+str;
}
});
$("#dv").html(str);
}
})
}
})
})
</script>
</head>
<body>
{% csrf_token %}
<a href="/blogManage/show">返回主页</a><br>
标题:{{ blog.title }}<br>
作者:{{ blog.blogUser.userName }}<br>
创建时间:{{ blog.createTime |date:"Y-m-d H:i:s" }}
{% autoescape off %}
内容:{{ blog.content }}
{% endautoescape %}
<div style="background-color: #E4E4E4" id="dv">
</div>
{#<textarea></textarea>#}
<input type="text" name="reply" id="reply">
<span style="font-size:30px; color:pink;" id="tespan"></span>
<input type="button" value="回复">
<head>
<meta charset="UTF-8">
<title>插件分页</title>
</head>
<body>
<h6>{{ request.session.username }}</h6>
{% for blog in pages %}
标题 <a href="/blogmanager/blogDetail/">{{ blog.title }}</a>
作者 {{ blog.blogUser.userName }}
创建时间{{ blog.createTime | date:"Y年m月d日H:i:s"}}
{% endfor %}
{% for i in pg.page_range %}
<a href="/blogmanager/Show/{{ i }}">{{ i }}</a>
{% endfor %}
<a href="/blogmanager/Show/1"></a>
{% if pages.has_previous %}
<a href="/blogmanager/Show/{{ pages.number | add:-1 }}">上一页</a>
{% endif %}
{% if pages.has_next %}
<a href="/blogmanager/Show/{{ pages.number | add:-1 }}">上一页</a>
{% endif %}
<a href="/blogmanager/Show/{{ pages }}">尾页</a>
</body>
插件分页:
def Show(request,pageNo=1):
# if request.POST.get("pageNo") is not None:
# pageNo=int(request.POST.get("pageNo"))
# pageSize = 4
# pg=Paginator(Blog.objects.all().order_by("-createTime"),pageSize)#得到所有对象
# #返回博客详细信息
# pages=pg.page(pageNo)
# return render(request,"manager/Fenye.html",{"pg":pg,"pages":pages})
#博客回复
def replyh(request):
if request.session.get("username") is None:
return render(request, "login.html")
else:
#获取blog的id,回复内容
bid=int(request.POST.get("id"))
replyContent=request.POST.get("replyContent")
#回复内容存储回复表中
myreply=ReplyBlog()
myreply.content=replyContent
myreply.replyUser=BlogUser.objects.filter(userName=request.session.get("username")).first()
myreply.blog=Blog.objects.get(pk=bid)
myreply.save()
#查询当前所有回复记录
replylist=ReplyBlog.objects.filter(blog_id=bid)
#将replylist转换成json格式
jsonobj=serialize('json',replylist)#表单用serialize()序列化并且通过ajax向后台传值,
return HttpResponse(jsonobj)
在详细信息页面detail里进行回复:
<style type="text/css">
.replydv1{
background-color: rgba(162,255,122,.3);
color: plum;
}
.replydv2{
background-color: rgba(151,255,215,.3);
color: plum;
}
</style>
<script src="/static/js/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function () {
//当点击回复按钮时,获取回复内容,给按钮添加点击事件
$("input[type='button']").click(function () {
val=$('#reply').val();
var crsf=$("input[name='csrfmiddlewaretoken']").val();
{#如果用户名为空#}
if(val.trim().length==0 || val==null){
$("#tespan").html("回复内容不能为空")
}
else {
$.ajax({
url:"/blogManage/replyh/",
type:"post",
data:{"id":{{blog.id}},replyContent:val,"csrfmiddlewaretoken":crsf},
dateType:"json",
sussess:function (response,data) {
//console.error(data);
var str=" ";
$.each(response,function (i,item) {
//response为返回结果,是一个array,然后对该array进行遍历,fields属性中包含所有查询内容,pk为每条结果的主键字段
var vfields=item.fields;
if(i%2==0){str="<div class='replydv1'>回复内容:"+vfields.content+" 回复时间:"+vfields.replyTime+" 回复人:{{ request.session.username }}</div>"+str;
}
else {
str="<div class='replydv2'>回复内容:"+vfields.content+" 回复时间:"+vfields.replyTime+" 回复人:{{ request.session.username }}</div>"+str;
}
});
$("#dv").html(str);
}
})
}
})
})
</script>
</head>
<body>
{% csrf_token %}
<a href="/blogManage/show">返回主页</a><br>
标题:{{ blog.title }}<br>
作者:{{ blog.blogUser.userName }}<br>
创建时间:{{ blog.createTime |date:"Y-m-d H:i:s" }}
{% autoescape off %}
内容:{{ blog.content }}
{% endautoescape %}
<div style="background-color: #E4E4E4" id="dv">
</div>
{#<textarea></textarea>#}
<input type="text" name="reply" id="reply">
<span style="font-size:30px; color:pink;" id="tespan"></span>
<input type="button" value="回复">