2024年Go最新从0-1搭建一个天气预报网站_golang 根据ip 获得天气(1),2024年最新Golang教程零基础入门

img
img
img

既有适合小白学习的零基础资料,也有适合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 语言环境
  1. 下载安装包 https://golang.org/dl/
  2. 解压 tar -C /usr/local -xzf go1.16.5.linux-amd64.tar.gz
  3. 添加环境变量 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


![img](https://img-blog.csdnimg.cn/img_convert/38830bcff645606e817b4b673ec13a31.png)
![img](https://img-blog.csdnimg.cn/img_convert/41532cca3117e39b5643cafb190576d7.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值