当前位置: 首页 > news >正文

都匀网站建设公司合肥网络seo推广服务

都匀网站建设公司,合肥网络seo推广服务,东莞做网站seo,怎么买域名自己做网站文章目录 1. Go语言Web框架1.1 框架比较1.2 安装Gin框架 2. 实现用户登录功能2.1 创建项目目录2.2 打开项目目录2.3 创建登录Go程序2.4 创建模板页面2.4.1 登录页面2.4.2 登录成功页面2.4.3 登录失败页面 3. 测试用户登录项目3.1 运行登录主程序3.2 访问登录页面3.3 演示登录成…

文章目录

  • 1. Go语言Web框架
    • 1.1 框架比较
    • 1.2 安装Gin框架
  • 2. 实现用户登录功能
    • 2.1 创建项目目录
    • 2.2 打开项目目录
    • 2.3 创建登录Go程序
    • 2.4 创建模板页面
      • 2.4.1 登录页面
      • 2.4.2 登录成功页面
      • 2.4.3 登录失败页面
  • 3. 测试用户登录项目
    • 3.1 运行登录主程序
    • 3.2 访问登录页面
    • 3.3 演示登录成功
    • 3.4 演示登录失败
  • 4. 改进版 —— 引入数据库
    • 4.1 创建数据与表
    • 4.2 安装数据库驱动
    • 4.3 修改登录Go程序
      • 4.3.1 导入数据库相关包
      • 4.3.2 创建初始化函数
      • 4.3.3 创建登录函数
      • 4.3.4 修改登录处理器函数
    • 4.4 测试用户登录项目
      • 4.4.1 运行登录Go程序
      • 4.4.2 访问登录页面
      • 4.4.3 演示登录成功
      • 4.4.4 演示登录失败
  • 5. 实战总结

1. Go语言Web框架

1.1 框架比较

  • Gin框架以其高性能和简洁的API设计而闻名,适合构建RESTful API和Web应用。Echo框架则提供了更多的中间件支持和更灵活的路由配置。Beego框架则提供了一个全功能的解决方案,包括ORM、缓存、日志等。

1.2 安装Gin框架

  • 执行命令:go get -u github.com/gin-gonic/gin
    在这里插入图片描述
  • 查看是否安装成功,执行命令:go list github.com/gin-gonic/gin
    在这里插入图片描述

2. 实现用户登录功能

2.1 创建项目目录

  • go_work里创建login目录,然后在login里创建templates
    在这里插入图片描述

2.2 打开项目目录

  • 在VsCode里打开login目录
    在这里插入图片描述

2.3 创建登录Go程序

  • login目录里创建login.go
    在这里插入图片描述
package mainimport ("net/http""github.com/gin-gonic/gin""path/filepath"  "log"   
)func main() {// 创建一个带有默认中间件Logger和Recovery的Gin路由器实例router := gin.Default()    // 使用filepath.Glob获取所有.tmpl模板文件的路径tmplFiles, err := filepath.Glob("templates/*.tmpl")if err != nil {log.Fatal("Error reading templates: ", err)}// 加载模板文件router.LoadHTMLFiles(tmplFiles...)    // 显示登录页面router.GET("/", func(c *gin.Context) {c.HTML(http.StatusOK, "login.tmpl", nil)})// 处理登录请求router.POST("/login", loginHandler)// 成功页面路由router.GET("/success", func(c *gin.Context) {// 从查询参数中获取用户名username := c.Query("username")// 将用户名传递给模板c.HTML(http.StatusOK, "success.tmpl", gin.H{"username": username})})// 失败页面路由router.GET("/failure", func(c *gin.Context) {// 从查询参数中获取用户名username := c.Query("username")c.HTML(http.StatusOK, "failure.tmpl", gin.H{"username": username})})// 启动服务器router.Run(":8080")
}// loginHandler 处理用户登录请求
func loginHandler(c *gin.Context) {// 获取表单数据username := c.PostForm("username")password := c.PostForm("password")// 假设的用户名和密码if username == "无心剑" && password == "903213" {        // 登录成功,跳转到success页面,并带查询参数c.Redirect(http.StatusFound, "success?username=" + username)} else {// 登录失败,跳转到failure页面,并带查询参数c.Redirect(http.StatusFound, "failure?username=" + username)}
}
  • 代码说明:这段Go代码使用Gin框架创建了一个简单的Web服务器,用于处理用户登录,并根据登录结果重定向到成功或失败页面。服务器在8080端口启动,提供三个路由:根路由(“/”)显示登录页面,“/login"处理登录逻辑,”/success"和"/failure"分别显示登录成功和失败的信息。登录成功后,用户名作为查询参数传递给成功页面的模板,失败页面同理。使用filepath.Glob获取所有模板文件并加载,模板文件存放在templates目录下。登录验证逻辑假设用户名为"无心剑",密码为"903213"。

2.4 创建模板页面

2.4.1 登录页面

  • templates里创建login.tmpl文件
    在这里插入图片描述
<html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>用户登录</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}body {font-family: Arial, sans-serif;background-color: #f5f5f5;}.container {max-width: 300px;margin: 50px auto;background-color: #ffffff;padding: 20px;border-radius: 5px;box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);}h3 {text-align: center;}form {display: flex;flex-direction: column;}label {margin-top: 10px;}input[type="text"],input[type="password"] {width: 100%;padding: 8px;margin-top: 5px;border: 1px solid #ccc;border-radius: 3px;}button {width: 100%;padding: 10px;margin-top: 10px;background-color: #4CAF50;color: white;border: none;border-radius: 3px;cursor: pointer;}button:hover {background-color: #45a049;}        </style></head><body><div class="container"><h3>用户登录</h3><form action="login" method="POST"><input type="text" id="username" name="username" required placeholder="请输入用户名"><input type="password" id="password" name="password" required placeholder="请输入密码"><button type="submit">登录</button>            </form></div></body>
</html>

2.4.2 登录成功页面

  • templates里创建success.tmpl文件
    在这里插入图片描述
<html><head><title>登录成功</title><style>.framed {border: 2px solid #000; /* 设置边框宽度、样式和颜色 */border-radius: 15px; /* 设置圆角边框 */padding: 10px; /* 设置内边距 */width: fit-content; /* 设置宽度为适合内容 */background-color: #f0f0f0; /* 设置背景颜色为浅灰色 */color: #f33; /* 设置文本颜色 */display: inline-block; /* 防止阴影和边框被裁剪 */}.centered {text-align: center; /* 使包含元素的文本居中 */margin-top: 50px; /* 添加上边距 */margin-bottom: 50px; /* 添加下边距 */}</style></head><body><div class="centered"><h3 class="framed">恭喜,{{ .username }}登录成功~</h3></div></body>
</html>

2.4.3 登录失败页面

  • templates里创建failure.tmpl文件
    在这里插入图片描述
<html><head><title>登录失败</title><style>.framed {border: 2px solid #000; /* 设置边框宽度、样式和颜色 */border-radius: 15px; /* 设置圆角边框 */padding: 10px; /* 设置内边距 */width: fit-content; /* 设置宽度为适合内容 */background-color: #f0f0f0; /* 设置背景颜色为浅灰色 */color: #33f; /* 设置文本颜色 */display: inline-block; /* 防止阴影和边框被裁剪 */}.centered {text-align: center; /* 使包含元素的文本居中 */margin-top: 50px; /* 添加上边距 */margin-bottom: 50px; /* 添加下边距 */}</style></head><body><div class="centered"><h3 class="framed">遗憾,{{ .username }}登录失败~</h3></div></body>
</html>

3. 测试用户登录项目

3.1 运行登录主程序

  • 运行login.go程序
    在这里插入图片描述

3.2 访问登录页面

  • 访问http://localhost:8080/
    在这里插入图片描述

3.3 演示登录成功

  • 输入正确的用户名和密码
    在这里插入图片描述
  • 单击【登录】按钮,跳转到登录成功页面
    在这里插入图片描述

3.4 演示登录失败

  • 输入错误的用户名或密码
    在这里插入图片描述
  • 单击【登录】按钮,跳转到登录失败页面
    在这里插入图片描述

4. 改进版 —— 引入数据库

4.1 创建数据与表

  • 数据库testdb与表t_user
    在这里插入图片描述

4.2 安装数据库驱动

  • 执行命令:go get -u github.com/go-sql-driver/mysql
    在这里插入图片描述

4.3 修改登录Go程序

4.3.1 导入数据库相关包

  • 导入"database/sql"_ "github.com/go-sql-driver/mysql"
    在这里插入图片描述
  • 代码说明:“database/sql” 是Go标准库的一部分,用于数据库操作。而 _ “github.com/go-sql-driver/mysql” 这行代码的意思是导入 github.com/go-sql-driver/mysql 包,但不直接使用它的任何公开API。这样做的目的是让该包在程序启动时自动执行它的 init 函数。

4.3.2 创建初始化函数

  • 创建init()函数
    在这里插入图片描述
var db *sql.DBfunc init() {var err error// 设置数据源dsn := "root:903213@tcp(127.0.0.1:3306)/testdb"// 打开数据库db, err = sql.Open("mysql", dsn)if err != nil {log.Fatal("Error connecting to the database: ", err)}if err = db.Ping(); err != nil {log.Fatal("Error pinging the database: ", err)}
}
  • 代码说明:这段代码初始化一个全局的*sql.DB数据库连接对象。init函数在程序启动时自动执行,用于设置数据库数据源(DSN),并尝试打开和测试数据库连接。如果连接失败,程序将记录错误并终止执行。这里使用的DSN包含了用户名、密码、地址和数据库名。确保在运行前数据库服务已启动,并且DSN配置正确。

4.3.3 创建登录函数

  • 创建login()函数
    在这里插入图片描述
func login(username, password string) bool {// 查询数据库中的用户信息var storedPassword stringerr := db.QueryRow("SELECT password FROM t_user WHERE username = ?", username).Scan(&storedPassword)if err != nil {log.Print("Error querying database: ", err)        return false}// 验证密码if password == storedPassword {return true} else {return false}
}

4.3.4 修改登录处理器函数

  • 修改loginHandler()函数代码
    在这里插入图片描述

4.4 测试用户登录项目

4.4.1 运行登录Go程序

  • 运行login.go程序
    在这里插入图片描述

4.4.2 访问登录页面

  • 访问http://localhost:8080/
    在这里插入图片描述

4.4.3 演示登录成功

  • 查看用户表
    在这里插入图片描述
  • 输入第二个用户信息:郑晓红11111
    在这里插入图片描述
  • 单击【登录】按钮,跳转到登录成功页面
    在这里插入图片描述

4.4.4 演示登录失败

  • 输入错误的用户名或密码:张三丰123456
    在这里插入图片描述
  • 单击【登录】按钮,跳转到登录失败页面
    在这里插入图片描述

5. 实战总结

  • 在本次实战项目中,我们成功地使用Go语言的Gin框架开发了一个具有数据库支持的用户登录系统。通过初始化项目结构、编写后端逻辑、设计前端页面,我们实现了一个完整的Web应用。我们学习了如何使用Gin框架处理HTTP请求、如何连接MySQL数据库以及如何使用模板渲染页面。此外,我们还掌握了如何通过查询参数在不同的页面间传递数据。这个项目不仅加深了我们对Web开发的理解,也锻炼了我们解决实际问题的能力。通过测试不同的登录场景,我们验证了系统的功能性和健壮性。总的来说,这是一个提高编程技能和学习新知识的宝贵经验。

文章转载自:
http://dinncopilum.bpmz.cn
http://dinncoexpurgator.bpmz.cn
http://dinncoglassless.bpmz.cn
http://dinncopreferred.bpmz.cn
http://dinncocorrody.bpmz.cn
http://dinncoquicky.bpmz.cn
http://dinncoosmidrosis.bpmz.cn
http://dinncoverrucous.bpmz.cn
http://dinncomilliroentgen.bpmz.cn
http://dinncocyanometry.bpmz.cn
http://dinncotrincomalee.bpmz.cn
http://dinncoswanning.bpmz.cn
http://dinncochuckle.bpmz.cn
http://dinncoheight.bpmz.cn
http://dinncooutscriber.bpmz.cn
http://dinncoproprioceptive.bpmz.cn
http://dinncoromeward.bpmz.cn
http://dinncoutilidor.bpmz.cn
http://dinncohypersusceptibility.bpmz.cn
http://dinncocysticerci.bpmz.cn
http://dinncosoar.bpmz.cn
http://dinncobrave.bpmz.cn
http://dinncoscyphiform.bpmz.cn
http://dinncolaurasia.bpmz.cn
http://dinncomultisense.bpmz.cn
http://dinncopirozhki.bpmz.cn
http://dinncogunnage.bpmz.cn
http://dinncoquestioning.bpmz.cn
http://dinncodropcloth.bpmz.cn
http://dinncocorpuscle.bpmz.cn
http://dinncoarden.bpmz.cn
http://dinncomacromere.bpmz.cn
http://dinncorpi.bpmz.cn
http://dinncocargojet.bpmz.cn
http://dinncopreserver.bpmz.cn
http://dinncoalchemical.bpmz.cn
http://dinncocooner.bpmz.cn
http://dinncoimprudence.bpmz.cn
http://dinncoantidepressive.bpmz.cn
http://dinncofaeroese.bpmz.cn
http://dinncolossmaker.bpmz.cn
http://dinncophotofabrication.bpmz.cn
http://dinncopsychohistorian.bpmz.cn
http://dinncomediamorphosis.bpmz.cn
http://dinncotautomer.bpmz.cn
http://dinncoromania.bpmz.cn
http://dinncotoscana.bpmz.cn
http://dinncoobscurant.bpmz.cn
http://dinnconaked.bpmz.cn
http://dinncomayan.bpmz.cn
http://dinncoreferable.bpmz.cn
http://dinncoassignable.bpmz.cn
http://dinncobatleship.bpmz.cn
http://dinncocribbing.bpmz.cn
http://dinncosabe.bpmz.cn
http://dinncojerquer.bpmz.cn
http://dinncotickicide.bpmz.cn
http://dinncosociologese.bpmz.cn
http://dinncosealift.bpmz.cn
http://dinncobrachycephalic.bpmz.cn
http://dinncodino.bpmz.cn
http://dinncochildbed.bpmz.cn
http://dinncocollutory.bpmz.cn
http://dinncomiogeoclinal.bpmz.cn
http://dinncouniserial.bpmz.cn
http://dinncocynghanedd.bpmz.cn
http://dinncoaeroflot.bpmz.cn
http://dinncomganga.bpmz.cn
http://dinncomythus.bpmz.cn
http://dinncoinbeing.bpmz.cn
http://dinncobogtrotter.bpmz.cn
http://dinncoscurfy.bpmz.cn
http://dinncovinyl.bpmz.cn
http://dinncofelibre.bpmz.cn
http://dinncoappersonation.bpmz.cn
http://dinnconanaimo.bpmz.cn
http://dinncoconnectible.bpmz.cn
http://dinncorevest.bpmz.cn
http://dinncofavoured.bpmz.cn
http://dinncojamboree.bpmz.cn
http://dinncopawl.bpmz.cn
http://dinncotimbrel.bpmz.cn
http://dinncoprotozoa.bpmz.cn
http://dinncopredictable.bpmz.cn
http://dinncofunk.bpmz.cn
http://dinncosoother.bpmz.cn
http://dinncomolilalia.bpmz.cn
http://dinncofuzzbuster.bpmz.cn
http://dinncosepulcher.bpmz.cn
http://dinncoequilibrate.bpmz.cn
http://dinncokilchu.bpmz.cn
http://dinncoearthworker.bpmz.cn
http://dinncokellogg.bpmz.cn
http://dinncomistakable.bpmz.cn
http://dinncomonist.bpmz.cn
http://dinncoreblossom.bpmz.cn
http://dinncomeniscocytosis.bpmz.cn
http://dinncosubgraph.bpmz.cn
http://dinncoslater.bpmz.cn
http://dinncodisquietude.bpmz.cn
http://www.dinnco.com/news/87963.html

相关文章:

  • 网站开发包括网站过程chrome官方下载
  • 中国网站建设公司排行点击软件
  • 南宁市规划建设局 网站北京seo顾问服务公司
  • 安徽合肥做网站的公司百度指数网址是多少
  • 做网站的要花多少钱seo网站排名优化公司
  • 深圳十大高科技企业网站免费优化软件
  • 怎么做html5网站长尾词优化外包
  • wordpress福利网站源码广东互联网网络营销推广
  • 平面设计师常用网站网络营销的推广方法
  • 临淄网站制作价格低品牌全案营销策划
  • 独立外贸网站建设营销软件商城
  • 网站预算网络推广推广
  • 企业网站seo贵不贵新闻头条今日要闻国内新闻最新
  • 手机网站 普通网站国外推广网站
  • 阿里云建站教程视频标题关键词优化报价
  • 网站初期建设的成本来源广州百度推广排名优化
  • 微博推广软件seo技术顾问阿亮
  • 做网站的术语大连百度关键词优化
  • wordpress怎么做小说站网站免费推广平台
  • 建设网站的费用预算百度竞价托管运营
  • wordpress上传不了百度seo排名优化价格
  • 中国建筑网app官方下载网站seo优化推广
  • 做淘客网站用备案吗百度权重提升
  • 网站建设与优化推广方案模板湖南正规关键词优化报价
  • 郑州做网站企业汉狮手机网站排名优化
  • 哈尔滨网站建设供应商百度网盘app手机版
  • h5类型的网站是怎么做的南宁百度首页优化
  • 个人做电影网站违法吗关键词检测
  • 美词原创网站建设百度公司好进吗
  • 毕业设计做网站low中山做网站推广公司