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.pswp.cn/news/899875.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899875.shtml
英文地址,請注明出處:http://en.pswp.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…