django7

插件分页:
<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+"&nbsp;回复时间:"+vfields.replyTime+" &nbsp;回复人:{{ request.session.username }}</div>"+str;
                                    }
                                    else {
                                        str="<div class='replydv2'>回复内容:"+vfields.content+"&nbsp;回复时间:"+vfields.replyTime+" &nbsp;回复人:{{ 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="回复">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值