Django实现ajax提交

简介: 场景:前端框架用layui, 提交的是textarea页面: <form method="POST"> {% csrf_token %} <div class="layui-...

场景:前端框架用layui, 提交的是textarea

页面:


            <form method="POST">
                {% csrf_token %}                
                <div class="layui-form-item">
                    <div class="layui-col-md6 layui-col-xs-12">
                        <label class="layui-form-label">页面地址</label>
                        <div class="layui-input-inline">
                            <textarea class="layui-textarea" name="urlstext" placeholder="请输入地址(一行一条以http开头)"></textarea>
                            <button class="layui-btn" lay-submit="" lay-filter="srh">立即提交</button>
                            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                        </div>
                    </div>
                    <div class="layui-col-md6 layui-col-xs-12">
                        <label class="layui-form-label">查询结果</label>
                        <div class="layui-input-inline">
                            <textarea class="layui-textarea mg1em" name="res" id="resultstext">
                            </textarea>
                        </div>
                    </div>
                </div>
            </form>
javascript:


<script>
layui.use(['form', 'layer'], function () {
$ = layui.jquery;
var form = layui.form,layer = layui.layer;
var posting = false;
//监听提交
form.on('submit(srh)', function (data) {
    if (posting) return;
    posting = true;
    var loading = layer.load(1);
    var form = $(this).closest("form");
    $.ajax({
        url: "query",
        data: form.serialize(),
        dataType: 'json',
        method: 'POST',
        success: function (res) {
            var items = res.is_taken;
            if (items) {
                posting = false;
                layer.close(loading);
                $('#resultstext').val('');
                for(var itemindex in items){
                    $('#resultstext').val($('#resultstext').val()+items[itemindex]+'\n');
                }
            } else {
                posting = false;
                layer.close(loading);
                layer.msg("查询失败", { icon: 5 });
            }
        },
        error: function () {
            posting = false;
            layer.close(loading);
            layer.msg("查询失败", { icon: 5 });
        }
    });
    return false;
    });
});
</script>

服务端:


def query(request):
    urls = results = []
    res = request.POST.get("urlstext", "")
    #处理逻辑......
    data = { 'results': results }
    return JsonResponse(data)



目录
相关文章
|
4月前
|
JSON 前端开发 JavaScript
Django入门到放弃之ajax
Django入门到放弃之ajax
|
6月前
|
前端开发 Python
Django框架中Ajax GET与POST请求的实战应用
Django框架中Ajax GET与POST请求的实战应用
|
6月前
|
JSON 前端开发 JavaScript
Django——Ajax请求
Django——Ajax请求
|
7月前
|
JSON 前端开发 JavaScript
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求
|
7月前
|
前端开发 JavaScript Python
Django 模板中使用 Ajax POST
Django 模板中使用 Ajax POST
64 0
|
7月前
|
JSON 前端开发 JavaScript
前端知识笔记(三十七)———Django与Ajax
前端知识笔记(三十七)———Django与Ajax
55 0
|
7月前
|
JSON 前端开发 JavaScript
前端知识笔记(二)———Django与Ajax
前端知识笔记(二)———Django与Ajax
66 0
|
前端开发 Python
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
171 45
|
1月前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
59 2