go语言:开发一个最简单的用户登录界面

1.用deepseek生成前端页面:

1.提问:请你用html帮我设计一个用户登录页面,要求特效采用科技感的背景渲染加粒子流动,用css、div、span标签,并给出最终合并后的代码。

生成的完整代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>科技感登录界面</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"><style>* {margin: 0;padding: 0;box-sizing: border-box;}body {background: #0a0e17;overflow: hidden;font-family: 'Arial', sans-serif;}#canvas {position: fixed;top: 0;left: 0;z-index: 1;}.login-box {position: relative;z-index: 2;width: 400px;padding: 40px;background: rgba(0, 30, 60, 0.8);border-radius: 10px;box-shadow: 0 0 20px rgba(0, 150, 255, 0.3);margin: 100px auto;color: #fff;}.login-box h2 {text-align: center;margin-bottom: 30px;color: #00a8ff;}.input-box {position: relative;margin-bottom: 30px;}.input-box input {width: 100%;padding: 10px 40px 10px 10px;background: transparent;border: none;border-bottom: 2px solid #00a8ff;color: #fff;font-size: 16px;transition: 0.3s;}.input-box input:focus {outline: none;border-bottom-color: #00ff88;}.input-box i {position: absolute;right: 10px;top: 50%;transform: translateY(-50%);color: #00a8ff;transition: 0.3s;}.input-box input:focus + i {opacity: 0;}.login-btn {width: 100%;padding: 12px;background: linear-gradient(45deg, #00a8ff, #00ff88);border: none;border-radius: 25px;color: #fff;font-size: 16px;cursor: pointer;transition: 0.3s;}.login-btn:hover {opacity: 0.9;}</style>
</head>
<body><canvas id="canvas"></canvas><div class="login-box"><h2>用户登录</h2><form id="loginForm"><div class="input-box"><input type="text" placeholder="用户名" required><i class="fas fa-user"></i></div><div class="input-box"><input type="password" placeholder="密码" required><i class="fas fa-lock"></i></div><button type="submit" class="login-btn">登 录</button></form></div><script>// 粒子动画配置const canvas = document.getElementById('canvas');const ctx = canvas.getContext('2d');let particles = [];// 初始化画布function initCanvas() {canvas.width = window.innerWidth;canvas.height = window.innerHeight;}// 粒子类class Particle {constructor() {this.x = Math.random() * canvas.width;this.y = Math.random() * canvas.height;this.vx = (Math.random() - 0.5) * 2;this.vy = (Math.random() - 0.5) * 2;this.radius = Math.random() * 1.5;this.alpha = Math.random() * 0.5 + 0.3;}draw() {ctx.beginPath();ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2);ctx.fillStyle = `rgba(0, 168, 255, ${this.alpha})`;ctx.fill();}update() {this.x += this.vx;this.y += this.vy;if (this.x < 0 || this.x > canvas.width) this.vx *= -1;if (this.y < 0 || this.y > canvas.height) this.vy *= -1;}}// 创建粒子function createParticles() {for (let i = 0; i < 80; i++) {particles.push(new Particle());}}// 动画循环function animate() {ctx.fillStyle = 'rgba(10, 14, 23, 0.1)';ctx.fillRect(0, 0, canvas.width, canvas.height);particles.forEach(particle => {particle.update();particle.draw();});requestAnimationFrame(animate);}// 初始化initCanvas();createParticles();animate();// 窗口大小改变时重置window.addEventListener('resize', () => {initCanvas();});// 登录表单提交document.getElementById('loginForm').addEventListener('submit', (e) => {e.preventDefault();// 添加登录动画document.querySelector('.login-btn').style.opacity = '0.5';setTimeout(() => {alert('登录成功!');document.querySelector('.login-btn').style.opacity = '1';}, 1000);});</script>
</body>
</html>

2.打开vscode进行后端设计:

后端代码:

package mainimport ("fmt""html/template""net/http"
)func main() {fmt.Println("serve is run.....")http.HandleFunc("/", index)http.HandleFunc("/login", login)http.ListenAndServe(":8080", nil)}
func index(w http.ResponseWriter, r *http.Request) {t, err := template.ParseFiles("./html/login.html")
if err != nil {
fmt.Fprint(w, "模板解析错误")
return
}}func login(w http.ResponseWriter, r *http.Request) {r.ParseForm()userName := r.Form.Get("用户名") // 读取用户名
// r.Form.Get 与 r.FormValue 效果等同,推荐 r.FormValue
passwd := r.FormValue("密码")
if userName == "admin" && passwd == "admin" {
fmt.Fprintln(w, "登录成功")
} else {
fmt.Fprintln(w, "登录失败")
}
}

交互的关键在于前端代码中提交的表单数据中的用户名和密码。

3.运行的效果:

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

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

相关文章

blender二次元上色

前&#xff1a; 后&#xff1a;&#xff08;脸自己会发光) 参考&#xff1a;05-模型导入与材质整理_哔哩哔哩_bilibili

Mysql+Demo 获取当前日期时间的方式

记录一下使用Mysql获取当前日期时间的方式 获取当前完整的日期时间有常见的四种方式&#xff0c;获取得到的默认格式(mysql的格式标准)是 %Y-%m-%d %H:%i:%s其它格式 %Y-%m-%d %H:%i:%s.%f方式一&#xff1a;now()函数 select now();mysql> select now(); -------------…

C#核心学习(六)面向对象--封装(5)静态成员及静态构造函数和静态类 以及和常量的区别

目录 一、什么是静态的&#xff1f;什么是常量&#xff1f; 1. ​静态&#xff08;Static&#xff09;​ 2. ​常量&#xff08;const&#xff09;​ 二、类中的静态成员有什么用&#xff1f; 1. ​共享数据 2. ​工具方法与全局配置 3. ​单例模式 三、静态类和静态成…

FreeRTOS源码下载分享

FreeRTOS源码下载分享 官网下载太慢了&#xff0c;分享下FreeRTOSv202411 FreeRTOSv202411.00.zip 链接: https://pan.baidu.com/s/1P4sVS5WroYEl0WTlPD7GXg 提取码: g6aq

2025年win10使用dockerdesktop安装k8s

一、写作背景 百度了一圈&#xff0c; 要么教程老&#xff0c;很多操作步骤冗余&#xff0c; 要么跑不通&#xff0c;或者提供的链接失效等情况。 二、看前须知 1、安装过程使用的AI辅助&#xff0c; 因为参考的部分博客卡柱了。 2、如果操作过程中遇到卡顿&#xff0c; …

一段式端到端自动驾驶:UniAD:Planning-oriented Autonomous Driving

论文地址:https://arxiv.org/pdf/2212.10156 代码地址:https://github.com/OpenDriveLab/UniAD 1. 摘要 现代自动驾驶系统通常由一系列按顺序执行的模块任务构成,例如感知、预测和规划。为了完成多种任务并实现高级别的智能化,当前的方法要么为每个任务部署独立模型,要…

【企业文化】CXO是什么?

李升伟 整理 CXO 是企业中高层管理职位的统称&#xff0c;其中的 “X” 是一个变量&#xff0c;代表不同的职能领域。CXO 通常指企业最高管理层中的各个负责人&#xff0c;他们共同参与企业的战略决策和运营管理。以下是一些常见的 CXO 职位及其职责&#xff1a; 1. CEO&…

python中的 f 是什么意思,f‘{username}_log_archive_{int(time.time())}.txt‘

python中的 f 是什么意思,f’{username}log_archive{int(time.time())}.txt’ 在 Python 中,f 是一种字符串前缀,用于创建格式化字符串(也称为 f-string),它是 Python 3.6 及更高版本引入的一种方便的字符串格式化方式。 基本语法和功能 当你在字符串前加上 f 前缀时,…

论文浅尝 | Interactive-KBQA:基于大语言模型的多轮交互KBQA(ACL2024)

转载至&#xff1a;何骏昊 开放知识图谱 原文地址&#xff1a;论文浅尝 | Interactive-KBQA&#xff1a;基于大语言模型的多轮交互KBQA&#xff08;ACL2024&#xff09; 笔记整理&#xff1a;何骏昊&#xff0c;东南大学硕士&#xff0c;研究方向为语义解析 论文链接&#xff…

MySQL注入中user-agent和cookie存在的注入

uagent注入 1、漏洞成因&#xff1a; 当Web应用程序将用户提供的User-Agent值未经处理直接拼接到SQL查询语句时&#xff0c;攻击者可以通过构造恶意User-Agent值闭合原有SQL语句并注入任意SQL代码。 2、以less-18为例&#xff1a; 相比前几关&#xff0c;第18关对于uname和pa…

【算法数学篇】试除法求约数

题解&#xff1a;试除法求约数 题目传送门 869. 试除法求约数 一、题目描述 给定 n 个正整数 aᵢ&#xff0c;对于每个整数 aᵢ&#xff0c;按照从小到大的顺序输出它的所有约数。 输入格式&#xff1a; 第一行包含整数 n接下来 n 行&#xff0c;每行包含一个整数 aᵢ 输…

《UNIX网络编程卷1:套接字联网API》第5章 TCP客户服务器程序示例

《UNIX网络编程卷1&#xff1a;套接字联网API》第5章 TCP客户/服务器程序示例 5.1 本章目标与示例程序概述 本章通过一个完整的TCP回射&#xff08;Echo&#xff09;客户/服务器程序&#xff0c;深入解析TCP套接字编程的核心流程与关键问题。示例程序的功能为&#xff1a;客户…

封装可拖动弹窗(vue jquery引入到html的版本)

vue cli上简单的功能&#xff0c;在js上太难弄了&#xff0c;这个弹窗功能时常用到&#xff0c;保存起来备用吧 备注&#xff1a;deepseek这个人工智障写一堆有问题的我&#xff0c;还老服务器繁忙 效果图&#xff1a; html代码&#xff1a; <div class"modal-mask&qu…

编译器工具链是什么?

编译器工具链&#xff08;Compiler Toolchain&#xff09; 是一组用于将源代码转换为可执行程序的工具和库的集合。它涵盖了从源代码编写到程序运行的整个构建过程&#xff0c;包括编译、汇编、链接等多个阶段。以下是关于编译器工具链的详细解释&#xff1a; 一、编译器工具链…

Spring Boot 集成Redis中 RedisTemplate 及相关操作接口对比与方法说明

RedisTemplate 及相关操作接口对比与方法说明 1. RedisTemplate 核心接口与实现类 RedisTemplate 是 Spring Data Redis 的核心模板类&#xff0c;通过 opsFor... 方法返回不同数据类型的操作接口&#xff0c;每个接口对应 Redis 的一种数据结构。以下是主要接口及其实现类&am…

linux内核漏洞检测利用exp提权

案例一dirtycow&#xff08;CVE-2016-5159&#xff09; 有个前置知识就是 获取liunx的内核 hostnamectl uname -a 然后这个内核漏洞进行提权的步骤也是和手工win进行提权差不多 也是需要使用辅助工具在本地进行辅助检测 然后去nomi-sec/PoC-in-GitHub&#xff1a; &#…

重磅 | CertiK《Hack3d:2025第一季度安全报告》(附报告全文链接)

CertiK《Hack3d&#xff1a;2025年第一季度安全报告》现已发布&#xff0c;本次报告深入分析了2025年1至3月Web3.0领域的安全状况。2025年第一季度共发生197起安全事件&#xff0c;总损失约为16.7亿美元&#xff0c;环比激增303.4%。其中Bybit事件导致约14.5亿美元的损失&#…

经典卷积神经网络LeNet实现(pytorch版)

LeNet卷积神经网络 一、理论部分1.1 核心理论1.2 LeNet-5 网络结构1.3 关键细节1.4 后期改进1.6 意义与局限性二、代码实现2.1 导包2.1 数据加载和处理2.3 网络构建2.4 训练和测试函数2.4.1 训练函数2.4.2 测试函数2.5 训练和保存模型2.6 模型加载和预测一、理论部分 LeNet是一…

二维码扫不出?用QR Research工具

一.简介 简单来说QR Research就是用来扫二维码的工具 当二维码模糊不清&#xff0c;无法用普通方式扫时&#xff0c;就可以用QR Research轻松扫描。QR Research还可以分析变形/破损二维码&#xff08;修复或提取有效部分&#xff09; 二.下载安装 QR Research 三.例题 这…

02_使用Docker在服务器上部署Jekins实现项目的自动化部署

02_使用Docker在服务器上部署jenkins实现项目的自动化部署 一、使用docker拉取阿里云容器私有镜像仓库内的jenkins镜像 登录阿里云Docker Registry $ sudo docker login --usernamewxxxo1xxx registry.cn-shanghai.aliyuncs.com用于登录的用户名为阿里云账号全名&#xff0c…