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

news2024/9/21 15:43:10

导入插件,导入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 %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="{% static 'jquery-3.6.0.min.js' %}"></script>
</head>
<body>
    用户名:<input type="text"><br>
    密码:<input type="password">
    <button>send</button>
    <script>
        $('button').click(function (){
            $.ajax({
                url:'/p2/',
                method:'get',
                data: {
                    name:$('input[type=text]').val(),
                    pwd:$('input[type=password]').val(),
                },
                // 上面的data是传入数据,下面的data是返回的数据
                success:function (data){
                    console.log(data)
                },
                error:function (xhr, status, error){
                    console.log(error)
                }
            })
        })
    </script>
</body>
</html>

07.html【post请求】

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    {% csrf_token %}
    <script src="{% static 'jquery-3.6.0.min.js' %}"></script>
</head>
<body>
    用户名:<input type="text"><br>
    密码:<input type="password">
    <button>send</button>
    <script>
        function getCookie(name) {
            var cookieValue = null;
            if (document.cookie && document.cookie !== '') {
                var cookies = document.cookie.split(';');
                for (var i = 0; i < cookies.length; i++) {
                    var cookie = jQuery.trim(cookies[i]);
                    // Does this cookie string begin with the name we want?
                    if (cookie.substring(0, name.length + 1) === (name + '=')) {
                        cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                        break;
                    }
                }
            }
            return cookieValue;
        }
        $(function (){
            $('button').click(function (){
                $.ajax({
                    url:'/p2/',
                    method:"post",
                    data: {
                        name:$('input[type=text]').val(),
                        pwd:$('input[type=password]').val(),
                    },
                    beforeSend: function (xhr) {
                        xhr.setRequestHeader("X-CSRFToken", getCookie("csrftoken"));
                    },
                    success:function (data){
                        console.log(data)
                    }
                })
            })
        })
    </script>
</body>
</html>

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

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

edge浏览器

Google浏览器

请求头,返回数据都是一样的,有报错的话,还是使用谷歌浏览器,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 %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="{% static 'jquery-3.6.0.min.js' %}"></script>
    <style>
        h3{
            color:darkorange;
        }
    </style>
</head>
<body>
    <button>click</button>
    <hr>
    <ul>
        <!-- 存放ul -->
    </ul>
<script>
    $(function (){
        $('button').click(function (){
            $.ajax({
                url:'/static/data.json',
                method:'get',
                cache: false,
                success:function (da){
                    {#console.log(da)//直接就是json格式#}
                    arr=da.data
                    str=''
                    for(var i=0;i<arr.length;i++){
                        {#网络不稳定时会报错但不影响使用#}
                        str+=`<li>
                                        <h3>书名:${arr[i].name}</h3>
                                        <h6>类别:${arr[i].name}</h6>
                                        <p>简介:${ arr[i].desc}</p>
                                    </li>`;
                    }
                    $('ul').html(str)
                },
                error:function (xhr,status,error){
                    console.log(error)
                }
            })
        })
    })
</script>
</body>
</html>

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

点击click后

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1132269.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图片gif怎么做?这一招分分钟制作

在现代的通讯工具中&#xff0c;gif动态表情已经是人们日常必不可少的一种交流工具了。当我们想要自己制作gif动画图片的时候该怎么办呢&#xff1f;这时候&#xff0c;只需要使用GIF中文网的gif图片制作&#xff08;https://www.gif.cn/&#xff09;功能&#xff0c;上传多张静…

MySQL恢复不小心误删的数据记录(binlog)-生产实操

同事操作删除生产数据时&#xff0c;未及时备份导致误删除部份数据。现通过mysql的binlog日志回滚数据。 1.由于我们第一时间找到相应的操作时间的大概在12点~13点之间操作删除了product和product_item表的部份数据。因此我们只要找到这期间的binlog文件就行了&#xff0c; 脚…

【字符串】【字符串和字符数组的相互转化】Leetcode 541 反转字符串 II

【字符串】【toCharArray & String st new String&#xff08;ch&#xff09;】Leetcode 541 反转字符串 II 字符串和字符数组的相互转化:star:解法1 字符串和字符数组的相互转化⭐️ 解法1 时间复杂度O(N) 这个解法的时间复杂度是O(N)&#xff0c;其中N是字符串的长度。…

美颜SDK集成指南:为应用添加视频美颜功能

随着社交媒体和直播应用的兴起&#xff0c;视频美颜功能已成为用户追求的一项热门特性。用户希望能够在拍摄照片或进行实时视频直播时&#xff0c;使用美颜功能来增强其外观。为了满足这一需求&#xff0c;开发者可以考虑集成美颜SDK&#xff0c;为其应用增加这一吸引人的功能。…

花生供应链中的沙门氏菌、大肠杆菌和肠杆菌: 从农场到餐桌

1.1Title:Salmonella, Escherichia coli and Enterobacteriaceae in the peanut supply chain: From farm to table 1.2 Author: Nascimento M. S. 1.3 机构&#xff1a;Campinas University 1.4 分区/影响因子&#xff1a;Q1/6.475 1.5 期刊&#xff1a;FOOD RESEARCH INT…

linux,windows命令行输出控制指令,带颜色的信息,多行刷新,进度条效果,golang

一、带颜色的信息 linux 颜色及模式编号 // 前景 背景 颜色 // --------------------------------------- // 30 40 黑色 // 31 41 红色 // 32 42 绿色 // 33 43 黄色 // 34 44 蓝色 // 35 45 紫红色 // 36 46 青蓝色 // 37 47 白色 // // 模式代码 意义 //…

接口测试到底怎么做,5分钟时间看完这篇文章彻底搞清楚!

01、通用的项目架构 02、什么是接口 接口&#xff1a;服务端程序对外提供的一种统一的访问方式&#xff0c;通常采用HTTP协议&#xff0c;通过不同的url&#xff0c;不同的请求类型&#xff08;GET、POST&#xff09;&#xff0c;不同的参数&#xff0c;来执行不同的业务逻辑。…

SpringBoot中对Spring AOP的实现

文章目录 SpringBoot中对Spring AOP的实现AOP简介引入依赖AOP体系与概念编写AOP切面类启动SpringBoot项目然后访问controller控制器对环绕通知放行execution表达式的含义通过注解方式定义切点 SpringBoot中对Spring AOP的实现 AOP简介 AOP (Aspect Oriented Programming), 面…

模拟线程死锁现象:两个线程同时抢两个互斥锁

下面业务逻辑的分析 1.如果 flag 为 T&#xff0c;线程 A 就会先得到 / 持有 o1 对象锁&#xff0c;然后尝试去获取 o2 对象锁 2.如果线程 A 得不到 o2 对象锁&#xff0c;就会 Blocked 3.如果 flag 为 F &#xff0c;线程 B 就会先得到 / 持有 o2 对象锁&#xff0c;然后尝试去…

【python】numpy常用属性

文章目录 np.rangenp.quantilenp.digitizenp.randomrandseedpermutation np.uniquenp.zerosnp.sumnp.logtransposebool判断 首先导入numpy import numpy as npnp.range np.range(start, end, step): 获取指定区间和步长的列表。 np.arange(0, 1, 0.1) # 区间: [0, 1), 步长…

大疆 dji mini4pro 不同充电器头 充电速度

协议 dp100w 头线 充电功率33.2w 指示灯快闪 一加手机官方充电头线&#xff08;协议&#xff1a;wrap65w闪充&#xff09; 12.1w 指示灯慢闪 官方 DJI Mini 4 Pro - 技术参数 - DJI 大疆创新 总结 买pd快充协议的头线即可。

(三)库存超卖案例实战——使用redis分布式锁解决“超卖”问题

前言 在上一节内容中我们介绍了如何使用mysql数据库的传统锁&#xff08;行锁、乐观锁、悲观锁&#xff09;来解决并发访问导致的“超卖问题”。虽然mysql的传统锁能够很好的解决并发访问的问题&#xff0c;但是从性能上来讲&#xff0c;mysql的表现似乎并不那么优秀&#xff…

ATA-8061射频功率放大器在心室导管式扩压电式测力传感器中的应用

心室导管式扩压电式测力传感器是一种广泛应用于心血管领域的关键设备&#xff0c;用于测量心脏内部的压力变化。本文将主要介绍关于压电式测力传感器的相关知识概念&#xff0c;以及功率放大器在心室导管式扩压电式测力传感器研究中的重要应用。我们通过对传感器原理和功率放大…

使用 JDAudioCrawler 将下载的音频存储到本地存储

前言 在当今数字化时代&#xff0c;音频数据的获取和处理变得越来越重要。本文将访问网易云音乐为案例&#xff0c;介绍如何使用JDAudioCrawler这个强大的工具&#xff0c;将音频数据存储下载到本地存储中。将详细介绍实现的流程和代码细节。 什么是 JDAudioCrawler DAudioC…

2023运营级别网赚网盘平台搭建(源码+教程)

023运营级别网赚网盘平台搭建&#xff08;源码教程&#xff09; 为什么要自己搭建网盘&#xff0c;现在许多大厂的网盘&#xff0c;文件都添加了许多限制&#xff0c;有好多文件会遭到和谐&#xff0c;而且大部分网盘也都会限速&#xff0c;不开通VIP是很难用的&#xff01;这…

【Docker】Docker Compose服务依赖与健康检查

docker compose环境变量 为增加安全性&#xff0c;在前面的python例子中增加redis的密码校验&#xff0c;密码从环境变量中获取&#xff1a; from flask import Flask from redis import StrictRedis import os import socketapp Flask(__name__) redis StrictRedis(hostos…

企业在数字化转型时如何通过SD-WAN保证业务连续性

企业数字化建设离不开高品质的网络&#xff0c;随着信息化系统和应用的部署&#xff0c;传统网络线路逐渐暴露出不同的问题&#xff0c;包括&#xff1a; 线路资源利用率低易造成浪费 关键业务流量被抢占&#xff0c;缺乏保障 网络不可视&#xff0c;无法实时查看线路情况 故…

利用已存在的conda环境

一、已存在的环境 二、在Pycharm中使用这些环境

Linux 基于sysfs的GPIO读写操作

https://bbs.huaweicloud.com/blogs/297252 前言 最近接触到Linux系统中的GPIO开发&#xff0c;这里做个小总结&#xff0c;也分享一下&#xff1b;本文会介绍GPIO的读写&#xff0c;介绍基本原理&#xff0c;以及不同读写方式的性能。 一、GPIO sysfs interface 基本原理 …

Android 备案公钥、签名 MD5获取方法

公钥和 MD5 值可以通过安卓开发工具、Keytool、Jadx-GUI 等多种工具获取&#xff0c;本文以 jadx-gui 为例。 1 windows 下载 jadx-gui 工具 下载 jadx-gui 工具 在这里选择一个下载 下载后 解压文件 双击运行程序&#xff0c;然后选择 release apk安装包 2 Mac 打开终端&a…