超详细教程-Django实现Ajax局部刷新

效果展示:

右侧div块展示博客详情
在这里插入图片描述右侧div块展示新建博客

在这里插入图片描述右侧div块展示新建博客

在这里插入图片描述

实现逻辑:

在一个DIV块展示不同的功能模块(查看博客,编辑博客,新建博客)

  • 前端发起Ajax请求
  • 后端使用render函数返回请求获取的内容
  • 前端接收render的HTML模板渲染后的HTML内容,并将其展现在特定区域(div)块

相关代码:

HTML:

<div class="blog-detail" id="blog_detail"></div>

JS:

 function add_blog_div(){
            $.ajax({
                type:"GET",
                url:"/blog/add",
                dataType: "html",
                date:{
                    csrfmiddlewaretoken:'{{ csrf_token }}'
                },
                success:function(result){
                    $("#blog_detail").html(result);
                }
            });
        }
    

Python:(PS:最终div块展示的是add.html渲染后的内容)

def add(request):
    if request.method == "GET":
        author_id = request.session['member']['id']
        categories = Category.objects.all().filter(author_id=author_id)
        tags = Tag.objects.all().filter(author_id=author_id)
        return render(request, 'blog/add.html', {'categories': categories,"tags":tags})
    

add.html(不用写头部等内容,直接把这个HTML文件当做div块内的内容)

<form class="form-horizontal"  style="margin-top:5px" >
        {% csrf_token %}
        <div class="form-group">
            <label for="title" class="col-md-1 control-label">标题:</label>
            <div class="col-md-7">
                <input type="text" name="title" id="title" class="form-control"  placeholder="文章标题">
            </div>
            <input id='edit_tagss' type="button" class="btn btn-default" value="设置专栏与标签">
        </div>
        <div class="form-group">
            <div class="col-md-12">
               <div id="vditor" class="vditor"></div>
            </div>
        </div>
    </form>
  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值