*Django中的Ajax jq的书写样式1

导入插件,导入jquery,json是添加的json文件

Ajax的get请求与post请求

urls.py

path('in3/',views.in3),

views.py

def in3(request):
    return render(request,'07.html')

要返回数据的path没有写,html就是下面图片中控制台的内容,记得传递参数

07.html【get请求】

{% load static %}



    
    Title
    


    用户名:
密码:

07.html【post请求】

{% load static %}



    
    Title
    {% csrf_token %}
    


    用户名:
密码:

*Django中的Ajax jq的书写样式1_第1张图片

post请求比get请求要多一个csrf请求头,不写报404错误

绝大多数情况使用get,传递密码这些用post,post只是相对于get安全点

edge浏览器

*Django中的Ajax jq的书写样式1_第2张图片

Google浏览器

*Django中的Ajax jq的书写样式1_第3张图片

请求头,返回数据都是一样的,有报错的话,还是使用谷歌浏览器,Edge浏览器有些报错信息写的不详细 

Json文件

json文件要放在static文件下才会识别到

data.json

{
  "total": 4,
  "data": [
    {
      "name": "三国演义",
      "category": "文学",
      "desc": "一个军阀混战的年代"
    },{
      "name": "三国演义2",
      "category": "文学2",
      "desc": "一个军阀混战的年代2"
    }
  ],
  "obj": {"adf": "adf"}
}

urls.py 

#获取json数据
path('in4/',views.in4)

#json数据
path('gjson/', views.Jsond, name='gjson'),

 views.py

def Jsond(request):#JsonResponse(json文件)
    with open('static/data.json', 'r') as json_file:
        data = json.load(json_file)
    response = JsonResponse(data)

    # 设置X-Content-Type-Options头部
    response['X-Content-Type-Options'] = 'nosniff'

    return response


def in4(request):
    return render(request,'08.html')

json也可以写为这样,不过要导入JsonResponse

from django.http import JsonResponse

def Jsond(request):#JsonResponse(json文件)
    with open('static/data.json', 'r') as json_file:
        data = json.load(json_file)

    return JsonResponse(data)

 08.html

{% load static %}



    
    Title
    
    


    
    

这里多了cashe,默认为true,缓存请求的数据至浏览器,以减少下次请求时间,【改变json文件后,需要改为false或关闭浏览器重新启动服务器,用以清除缓存好的数据】

点击click后

*Django中的Ajax jq的书写样式1_第4张图片

你可能感兴趣的:(django,python,后端)