文章目录
- 一、Web 开发
- 1. 什么是Web 开发?
- 2. 主要组成部分
- 2.1 前端开发
- 2.2 后端开发
- 2.3 全栈开发
- 2.4 数据库管理
- 3. Web开发过程
- 3.1 规划和设计:
- 3.2 开发和编码:
- 3.3 测试和优化:
- 3.4 部署和维护:
- 4. 总结
- 二、用标准库`net/http`处理Web请求
- 1. 动态路由
- 2. 鉴权和中间件
- 3. 模板引擎
- .....
- 三、Web框架
- 四、Gee框架
Gee是一个Web框架,当我们决定进行Web开发,实现一个Web应用时,就可以用到,下面各位小可爱,跟着我一步步开始这个项目吧~
一、Web 开发
要学习Web框架,那么首先就需要搞明白,什么是Web 开发呢?
1. 什么是Web 开发?
Web开发就是创建和维护网站的过程。它涉及从设计网站的外观和用户体验,到编写代码实现网站的功能,再到确保网站在互联网上正常运行。
2. 主要组成部分
2.1 前端开发
- 负责网站的外观和用户交互。
- 使用HTML、CSS和JavaScript等技术。
- 确保网站在不同设备和浏览器上看起来都不错。
2.2 后端开发
- 负责网站的逻辑和数据处理。
- 使用服务器端语言如Python、Java、Go等。
- 管理数据库,处理用户请求,确保数据安全。
2.3 全栈开发
- 同时处理前端和后端的开发工作。
- 需要掌握多种技术和工具。
2.4 数据库管理
- 存储和管理网站的数据。
- 使用数据库系统如MySQL、PostgreSQL、MongoDB等。
3. Web开发过程
3.1 规划和设计:
- 确定网站的目标和功能。
- 设计网站的结构和用户界面。
3.2 开发和编码:
- 编写前端和后端代码。
- 实现网站的功能和交互。
3.3 测试和优化:
- 确保网站在不同设备和浏览器上正常运行。
- 优化网站的性能和安全性。
3.4 部署和维护:
- 将网站发布到互联网上。
- 定期更新和维护网站,修复问题。
4. 总结
简单来说,Web开发就是把一个网站从无到有地创建出来,并确保它能在互联网上正常运行和使用。
二、用标准库net/http
处理Web请求
Go语言的net/http
库是一个强大且灵活的标准库,用于构建HTTP客户端和服务器。它提供了处理HTTP请求和响应的基本功能,使开发者可以轻松地创建Web应用程序和服务。
package mainimport ("fmt""log""net/http"
)
func main() {http.HandleFunc("/", handler) // 注册处理函数http.HandleFunc("/count", counter)log.Fatal(http.ListenAndServe("localhost:8000", nil)) // 启动服务器
}func handler(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, "URL.Path = %q\n", r.URL.Path) // 发送响应
}
这个标准库提供了基础的Web功能,即监听端口,映射静态路由,解析HTTP报文。但在一些常见的Web开发需求上,开发者需要手动实现更多的功能:
1. 动态路由
- 标准库的限制:net/http的路由机制是基于静态路径匹配的,无法直接支持动态路由(如/hello/:name或/hello/*)。
- 框架的优势:Web框架通常提供强大的路由功能,支持动态路由、路径参数、正则表达式匹配等。
2. 鉴权和中间件
- 标准库的限制:net/http没有内置的中间件机制,开发者需要在每个处理函数中手动实现鉴权、日志记录等功能。
- 框架的优势:Web框架通常提供中间件机制,允许开发者在请求处理的不同阶段插入通用逻辑,如鉴权、日志、错误处理等。
3. 模板引擎
- 标准库的限制:虽然Go的标准库提供了html/template和text/template,但它们的功能相对基础,缺乏一些高级特性。
- 框架的优势:许多Web框架集成了更强大的模板引擎,提供更简化和灵活的HTML生成机制。
…
三、Web框架
当我们离开框架,使用基础库时,需要频繁手工处理的地方,就是框架的价值所在。
直白地说,Web框架就像是搭建网站的“工具箱”或“模板”。它提供了一套现成的工具和结构,帮助开发者更快、更轻松地创建网站或Web应用。
举个例子
想象你要建一座房子:
-
没有框架:你需要从头开始,自己设计图纸,买材料,搭建每一面墙,安装每一个电线和水管。这就像使用net/http标准库,你需要自己处理每一个细节。
-
有框架:你有一个预制的房屋模板,里面有现成的墙壁、屋顶、管道和电线。你只需要根据自己的需求进行调整和装饰。这就像使用Web框架,框架已经为你处理了很多常见的功能,你只需要专注于实现具体的业务逻辑。
假设你要创建一个简单的博客网站:
- 没有框架:
- 你需要自己处理用户请求,解析URL,管理用户会话,处理表单数据,连接数据库,生成HTML页面等。这需要编写大量的代码来处理这些基础功能。
- 使用Web框架:
- 框架已经提供了用户认证、路由、模板引擎、数据库连接等功能。你只需要编写少量代码来定义博客的具体功能,比如发布文章、显示文章列表等。
四、Gee框架
不同的框架设计理念和提供的功能有很大的差别。比如 Python 语言的 django和flask,前者大而全,后者小而美。Go语言/golang 也是如此,新框架层出不穷,比如Beego,Gin,Iris等。
Gee框架是用 Go 语言实现一个简单的 Web 框架,参考了Gin,大家可以看到很多Gin的影子。
参考:https://geektutu.com/post/gee.html
大佬的源代码/数据集已上传到 https://github.com/geektutu/7days-golang