Web framework-Gin(二)

news2024/11/26 2:40:29

一、Gin

1、Ajax

        AJAX 即“Asynchronous Javascript And XML”(异步 JavaScript和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

        AJAX的最大的特点: 异步访问,局部刷新。

案例:Ajax之验证用户名是否被占用

main.go

func main() {
	r := gin.Default()
	r.LoadHTMLGlob("part02/templates/**/*")
	//指定js文件:
	r.Static("/s", "part02/static")
	r.GET("/test1", myfunc.Test1)
	r.POST("/getUserInfo", myfunc.Test2)
	r.POST("/ajaxpost", myfunc.Test3)
	r.Run()
}

myfunc.go

func Test1(context *gin.Context) {
	context.HTML(200, "demo01/hello01.html", nil)
}

func Test3(context *gin.Context) {
	//获取post-ajax请求的数据,获取对应的参数:
	uname := context.PostForm("uname")
	fmt.Println(uname)
	fmt.Println(uname == "丽丽")
	if uname == "丽丽" {
		context.JSON(200, gin.H{
			"msg": "用户名重复了!",
		})
	} else {
		context.JSON(200, gin.H{
			"msg": "",
		})
	}
}

hello01.html  注意:引入jQuery.min.js

{{define "demo01/hello01.html"}}
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/s/css/mycss.css">
    <script src="/s/js/jQuery.min.js"></script>
</head>
<body>
    用户form表单<br>
    <form action="/getUserInfo" method="post">
        用户名:<input type="text" name="username" id="uname"><span id="errmsg"></span><br>
        密码:<input type="password" name="pwd">
        <input type="submit" value="提交">
    </form>

    <script>
        //获取用户名的文本框
        var unametext = document.getElementById("uname");
        //给文本框绑定一个事件:失去焦点的时候会触发后面的函数的事件
        unametext.onblur = function () {
            //获取文本框的内容:
            var uname = unametext.value;
            //alert(uname)可以弹出数据,验证代码的正确性
            //局部刷新:通过ajax技术来实现数据的校验 ---》 后台 :异步访问,局部刷新
            //调用ajax方法需要传入json格式的数据: $.ajax({属性名:属性值,属性名:属性值,方法名:方法})
            $.ajax({
                url : "/ajaxpost",//请求路由
                type : "POST",//请求类型 GET、POST
                data : {//向后端发送的数据,以json格式向后传递
                    "uname" : uname
                },
                success : function (info) {//后台响应成功会调用函数,info-后台响应的数据封装到info中,info名字可以随便起
                    document.getElementById("errmsg").innerText = info["msg"]
                },
                fail : function () {后台响应失败会调用函数
                }
            })
        }
    </script>
</body>
</html>
{{end}}

测试:

2、文件上传

3、模板语法

4、数据绑定

5、路由组

6、中间件

Web framework-Gin

Go framework-Beego

难留少年时,总有少年来!

无论你是年轻还是年长,所有程序员都需要记住:时刻努力学习新技术,否则就会被时代抛弃!

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

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

相关文章

AppleID切换验证手机

第一步&#xff1a;登录个人信息页面 https://appleid.apple.com/account/manage/section/security 第二步&#xff1a;选择账户安全 第三步&#xff1a;验证新手机号即可

供应链 | 顶会CIKM论文精读:面向大规模三维装箱问题的数据驱动树形搜索算法

论文解读&#xff1a;丁建辉&#xff0c;李明哲&#xff0c;赵艳蓉&#xff0c;孙楚天 编者按 本次解读的文章发表于CCF-B类会议30th ACM International Conference on Information and Knowledge Management。摘要总结如下&#xff1a; 3维装箱问题&#xff08;3D-BPP&#…

2023第二届陇剑杯网络安全大赛 预选赛Writeup

题目附件 链接&#xff1a;https://pan.baidu.com/s/1J20VusdMjit4coWAi5lnnQ 提取码&#xff1a;6emq 文章目录 HWhard_web_1hard_web_2hard_web_3 SSsevrer save_1sevrer save_2sevrer save_3sevrer save_4sevrer save_5sevrer save_6sevrer save_7sevrer save_8 WSWireshar…

46、TCP的“三次握手”

在上一节中&#xff0c;TCP首部常用的几个选项&#xff0c;有些选项的参数就是在通信双方在建立TCP连接的时候进行确定和协商的。所以在学习过TCP报文首部之后&#xff0c;下面我们开始学习TCP的连接建立。 TCP的一个特点是提供可靠的传输机制&#xff0c;还有一个特点就是TCP…

字符型注入([SWPUCTF 2021 新生赛]easy_sql)

拿到题目&#xff0c;查看源码&#xff0c;可知是要输入参数wllm。 输入参数/?wllm1&#xff0c;得到会显 继续输入参数/?wllm1&#xff0c;报错&#xff0c;确定为字符型漏洞 1.查看字段列表&#xff0c;发现在字段4报错&#xff0c;确定为3列 ?wllm-1 order by 3-- ?wl…

基于JavaScript粒子流动效果

这是一个HTML文件&#xff0c;主要包含了一些CSS样式和JavaScript代码&#xff0c;用于创建一个动画效果。 在CSS部分&#xff0c;定义了一些基本的样式&#xff0c;包括页面的背景颜色、位置、大小等。特别的&#xff0c;定义了两种球形元素&#xff08;.ball_A 和 .ball_B&am…

静态路由配置实验:构建多路由器网络拓扑实现不同业务网段互通

文章目录 一、实验背景与目的二、实验拓扑三、实验需求四、实验解法1. 配置 IP 地址2. 按照需求配置静态路由&#xff0c;实现连接 PC 的业务网段互通 摘要&#xff1a; 本实验旨在通过配置网络设备的IP地址和静态路由&#xff0c;实现不同业务网段之间的互通。通过构建一组具有…

nginx-基于range做断点续传

nginx默认开启了range断点续传&#xff0c;只要再请求时载请求头上添加header&#xff0c;range&#xff0c;nginx就可以根据range范围返回相应的字节。

zabbix配置钉钉告警

钉钉告警python脚本 cat python20 #!/usr/bin/python3 #coding:utf-8 import requests,json,sys,os,datetime # 机器人的Webhook地址 webhook"钉钉" usersys.argv[1] textsys.argv[3] data{"msgtype": "text","text": {"conten…

Leetcode 2431.最小偶倍数

给你一个正整数 n &#xff0c;返回 2 和 n 的最小公倍数&#xff08;正整数&#xff09;。 示例 1&#xff1a; 输入&#xff1a;n 5 输出&#xff1a;10 解释&#xff1a;5 和 2 的最小公倍数是 10 。示例 2&#xff1a; 输入&#xff1a;n 6 输出&#xff1a;6 解释&#…

docker 笔记10:Docker轻量级可视化工具Portainer

1. 是什么 Portainer 是一款轻量级的应用&#xff0c;它提供了图形化界面&#xff0c;用于方便地管理Docker环境&#xff0c;包括单机环境和集群环境。 2.安装 https://docs.portainer.io/v/ce-2.9/start/install/server/docker/linux 步骤 docker命令安装 docker run -d …

【postgresql 基础入门】数据库服务的管理

数据库服务管理 ​专栏内容&#xff1a; postgresql内核源码分析手写数据库toadb并发编程 ​开源贡献&#xff1a; toadb开源库 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff…

第一章:绪论

1.1 系统架构概述 架构是体现在组件中的一个系统的基本组织、它们彼此的关系与环境的关系以及指导它的设计和发展的原则。 系统是组织起来完成某一特定功能火一组功能的组件集。系统这个术语包括了单独的应用程序、传统意义上的系统、子系统、系统之系统、产品线、整个企业及…

三层交换实验:实现不同VLAN间的互通与路由配置

文章目录 一、实验背景与目的二、实验拓扑三、实验需求四、实验解法1. PC 配置 IP 地址2. PC2 属于 Vlan10&#xff0c;PC3 属于 Vlan20&#xff0c;在三层交换机上配置 Vlanif 三层接口实现 Vlan10 和 Vlan20 三层互通3. 测试在 PC3 上 Ping PC4 &#xff0c;可以 Ping 通 PC4…

吴恩达《面向开发者的提示词工程》

Ref&#xff1a; 【中英字幕 | P01 Introduction】2023吴恩达新课《面向开发者的提示词工程》_哔哩哔哩_bilibili 对应的笔记 ChatGPT Prompt - 知乎 本课程主要介绍指令微调LLM的最佳实践 在大型语言模型或LLM的开发中&#xff0c;大体上有两种类型的LLM&#xff0c;我将其…

kotlin协程广播管道BroadcastChannel,订阅管道openSubscription

kotlin协程广播管道BroadcastChannel&#xff0c;订阅管道openSubscription import kotlinx.coroutines.* import kotlinx.coroutines.channels.*fun main(args: Array<String>) {//广播消息//也可以把普通Channel转换成广播Channel//val channel Channel<Int>()/…

企业场景篇

企业场景篇 设计模式 简单工厂模式 工厂&#xff08;factory&#xff09;处理创建对象的细节&#xff0c;一旦有了SimpleCoffeeFactory&#xff0c;CoffeeStore类中的orderCoffee()就变成此对象的客户&#xff0c;后期如果需要Coffee对象直接从工厂中获取即可。这样也就解除了…

【javaweb】学习日记Day9 - Mybatis 基础操作

目录 一、删除 &#xff08;1&#xff09;在mapper接口执行sql删除语句 ① 注解后sql语句没有提示怎么办&#xff1f; &#xff08;2&#xff09;测试层 &#xff08;3&#xff09;开启mybatis日志 &#xff08;4&#xff09;预编译SQL 二、新增 &#xff08;1&#…

深入探讨Java虚拟机(JVM):执行流程、内存管理和垃圾回收机制

目录 什么是JVM&#xff1f; JVM 执行流程 JVM 运行时数据区 堆&#xff08;线程共享&#xff09; Java虚拟机栈&#xff08;线程私有&#xff09; 什么是线程私有? 程序计数器&#xff08;线程私有&#xff09; 方法区&#xff08;线程共享&#xff09; JDK 1.8 元空…

Linux下 Socket服务器和客户端文件互传

目录 1.项目描述 2.函数准备 2.1 gets函数 2.2 popen函数、fread函数 2.3 access 函数 2.4 exit 函数 2.5 strtok 函数 2.6 chdir函数 3.项目代码 3.1服务器代码 3.2客户端代码 4.问题总结 1.项目描述 基于Soket聊天服务器&#xff0c;实现服务器和客户端的文件传输。…