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