django中的ajax_post请求
生活随笔
收集整理的这篇文章主要介绍了
django中的ajax_post请求
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Ajax_post请求,涉及到post请求就会遇到csrf问题,ajax的post请求,同样需要发生csrf_token。
相比较get请求,post请求:
1、需要一字典格式整合数据
2、需要一个csrf_token,键必须是csrfmiddlewaretoken
其他部分和get请求类似
1、静态页面 ajax_post.html
2、视图文件 views.py
def ajax_post(request):userForm=UserForm()return render (request,"ajax_post.html",locals()) def ajax_post_data(request):result={"status":"error","content":"请求过来了"}if request.method=="POST":#如果请求类型是POSTdata=UserForm(request.POST)#将post请求的数据传递给UserForm进行校验#检验数据是否符合规定if data.is_valid():#如果校验成功,返回true #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.birthday=clean_data.get("birthday")user.save()#保存到数据库result["status"]="success"result["content"]="数据保存成功"else:result["content"]="<br>".join(data.errors)#errors result[content]=数据错误字段<br>数据错误字段#多个错误字段之间用<br>分割else:result["content"]="请求类型错误"return JsonResponse(result)#ajax得用Json/Json是一种数据格式3、forms.py form表单文件
from django import forms class UserForm(forms.Form):#与数据库类似,但不是数据库username=forms.CharField(required=False,label="用户名",help_text="用户名可以为空")password=forms.CharField(max_length=12,min_length=6,label="密码")#label是别名的意思age=forms.IntegerField(label="年龄")email=forms.EmailField(label="邮箱")birthday=forms.DateField(label="生日")def clean_username(self):#所有自定义的效验的方法一定是clean_效验的字段名username=self.cleaned_data.get('username')if "li" in username:raise forms.ValidationError("昵称违规")else:return username4、数据库模型
from django.db import modelsclass LoginUser(models.Model):username=models.CharField(max_length=32)password = models.CharField(max_length=32) class UserModel(models.Model):#建立表单提交的数据库#表单数据库username=models.CharField(max_length=32)password=models.CharField(max_length=32)age=models.IntegerField()email=models.EmailField()birthday=models.DateField() 5、路由配置path(‘ap/’,ajax_post),
path(‘apd/’,ajax_post_data),
总结
以上是生活随笔为你收集整理的django中的ajax_post请求的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: django媒体文件上传设置
- 下一篇: django的ajax_cookie和s