Django中ajax的post请求使用示例

Ajax_post请求,涉及到post请求就会遇到csrf问题,ajax的post请求,同样需要发生csrf_token。

相比较get请求,post请求:

  1. 需要一字典格式整合数据

  2. 需要一个csrf_token,键必须是csrfmiddlewaretoken

其他部分和get请求类似

需要一个页面




    
    Title

    




{% csrf_token %} {% for u in userForm %}

{{ u }}

{% endfor %}

Django中ajax的post请求使用示例_第1张图片

需要两个视图

页面视图负责展示页面,页面视图的内容如下:

def ajax_post(request):
    userForm = UserForm()
    return render_to_response('ajax_post.html',locals())

ajax处理视图负责处理ajax请求,ajax处理视图的内容如下:

from django.http import JsonResponse #返回ajax的数据的话需要先引入JsonResponse包
def ajax_post_data(request):
    result = {'status':'error',"content":"请求过来了"}

    if request.method == "POST": #判断提交的方式
        data = UserForm(request.POST) #把前台传来的数据传递给UserForm()进行校验
        if data.is_valid():
            clean_data = data.cleaned_data #返回一个放着经过校验的数据的字典
            user = UserModel()  #把数据存储到数据库
            user.username = clean_data.get('username')
            user.password = clean_data.get('password')
            user.age = clean_data.get('age')
            user.email = clean_data.get('email')
            user.date = clean_data.get('birthday')
            user.save()
            result['status']='success' #数据保存成功后把,result的状态和content内容改变
            result['content']='数据保存成功'
        else:
            result['content'] = "
".join(data.errors) else: result['content']="请求类型错误" return JsonResponse(result)

 

 

你可能感兴趣的:(Django)