既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
+ - [用户 IP 地址获取](#_IP__11)
- [天气预报 API](#_API_15)
+ [开始搭建](#_17)
+ - [beego 环境搭建](#beego__19)
- [网站项目编写](#_101)
+ [部署](#_181)
+ [完工](#_191)
前言
前段时间在家搭建了一台服务器《云服务器续费太贵,直接在家搭一台,再也不受约束了》,有小伙伴留言想看后续服务部署,今天就从0-1部署一个一直使用的天气预报网站,这个网站已经持续运行了一年多了,稳如老gou。大家可以使用一下。
先上图
主要功能:
- 根据访问者所在城市自动查询当地天气
- 查询指定城市的天气
- 未来七天的温度走势图
- 天气情况每半小时左右更新一次
技术支撑
用户 IP 地址获取
访问网址 http://pv.sohu.com/cityjson 即可获得访问者的公网 IP、所在城市、所在城市代码。这里我们会用到的信息是用户的公网 IP。
天气预报 API
这里我们用到的天气 API 服务网站是 https://tianqiapi.com/ 大家可以免费注册使用。
开始搭建
操作系统:Centos 8.3
beego 环境搭建
网站使用的是基于 Go 语言的 beego 环境
- 安装 Git
yum install git - 安装 go 语言环境
- 下载安装包
https://golang.org/dl/
- 解压
tar -C /usr/local -xzf go1.16.5.linux-amd64.tar.gz
- 添加环境变量
export PATH=$PATH:/usr/local/go/bin
- 安装 beego
go get github.com/astaxie/beego
如果出现下载超时的情况,可以设置代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
- 安装 bee 工具
go get github.com/beego/bee
执行后将在$GOPATH/bin
目录下安装二进制文件bee
,接着我们需要为此目录添加环境变量
export PATH=$GOPATH/bin
至此,beego 环境就搭建完成了,我们可以测试一下
# cd ~/go/src/
[root@Box src]# bee new hello
2021/06/11 16:50:34 INFO ▶ 0001 generate new project support go modules.
2021/06/11 16:50:34 INFO ▶ 0002 Creating application...
create /root/go/src/hello/go.mod
create /root/go/src/hello/
create /root/go/src/hello/conf/
create /root/go/src/hello/controllers/
create /root/go/src/hello/models/
create /root/go/src/hello/routers/
create /root/go/src/hello/tests/
create /root/go/src/hello/static/
create /root/go/src/hello/static/js/
create /root/go/src/hello/static/css/
create /root/go/src/hello/static/img/
create /root/go/src/hello/views/
create /root/go/src/hello/conf/app.conf
create /root/go/src/hello/controllers/default.go
create /root/go/src/hello/views/index.tpl
create /root/go/src/hello/routers/router.go
create /root/go/src/hello/tests/default_test.go
create /root/go/src/hello/main.go
2021/06/11 16:50:34 SUCCESS ▶ 0003 New application successfully created!
[root@Box src]# cd hello/
[root@Box hello]# bee run
______
| ___ \
| |_/ / ___ ___
| ___ \ / _ \ / _ \
| |_/ /| __/| __/
\____/ \___| \___| v1.12.0
2021/06/11 16:50:41 INFO ▶ 0001 Using 'hello' as 'appname'
2021/06/11 16:50:41 INFO ▶ 0002 Initializing watcher...
go: github.com/astaxie/beego@v1.12.1: missing go.sum entry; to add it:
go mod download github.com/astaxie/beego
2021/06/11 16:50:41 ERROR ▶ 0003 Failed to build the application: go: github.com/astaxie/beego@v1.12.1: missing go.sum entry; to add it:
go mod download github.com/astaxie/beego
^C
[root@Box hello]# go mod tidy
go: finding module for package github.com/shiena/ansicolor
go: found github.com/shiena/ansicolor in github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18
[root@Box hello]# bee run
______
| ___ \
| |_/ / ___ ___
| ___ \ / _ \ / _ \
| |_/ /| __/| __/
\____/ \___| \___| v1.12.0
2021/06/11 16:52:37 INFO ▶ 0001 Using 'hello' as 'appname'
2021/06/11 16:52:37 INFO ▶ 0002 Initializing watcher...
hello/controllers
hello/routers
hello
2021/06/11 16:52:40 SUCCESS ▶ 0003 Built Successfully!
2021/06/11 16:52:40 INFO ▶ 0004 Restarting 'hello'...
2021/06/11 16:52:40 SUCCESS ▶ 0005 './hello' is running...
2021/06/11 16:52:40.991 [I] [asm_amd64.s:1371] http server Running on http://:8080
网站项目编写
下面是项目目录
# tree
.
├── city.json
├── conf
│ └── app.conf
├── controllers
│ ├── default.go
│ └── tianqiapi.go
├── go.mod
├── go.sum
├── go_web
├── main.go
├── routers


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**