先在本地配置好,然后部署到服务器上。不过这里有个前提,就是服务器端和本地的环境配置都相同,这里包括数据库的用户名和密码应该相同,应该有相同的建表语句。
设置国内镜像
1 | go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/ # 可以写进 .bashrc / .zshrc |
GoLand添加GO ROOT时如果报错:/usr/lib/go the selected directory is not a valid home for go sdk
在$GOROOT/src/runtime/internal/sys/zversion.go
文件中添加
1 | const TheVersion = `go1.17.3` |
具体版本以安装为准。
本地配置
GoLand中安装Swagger插件,实现在本地编写YAML格式的Swagger配置文件。
Beego框架是快速开发Go应用的HTTP框架,用来快速开发API及后端服务。Beego采用M(models)V(views)C(controllers)框架
M:定义数据,表以及结构体
V:前端展现出的界面,下载Swagger即可使用前端文件
C:处理业务逻辑,比如API中的POST,PUT,GET,DELETE等
Http请求包括:Http动作,URL,Body,Response
beego启动自动化文档命令bee run -gendoc=true -downdoc=true
为了使用golang操作数据库social_app,我们在MySQL中新建一个用户并授权
1 | CREATE DATABASE social_app; |
创建数据库
1 | DROP TABLE IF EXISTS SquareNum; |
服务器配置
使用腾讯云Ubuntu云服务器140.143.30.248
从Golang.org下载Linux系统的go语言安装包,上传到服务器,然后解压到/user/local/目录下。形成go的根目录:/user/local/go
然后添加go语言的环境变量,在sudo用户/etc/profile文件的最后添加
export PATH=”$PATH:/usr/local/go/bin”
export GOPATH=”/home/ubuntu/go”
export GOBIN=”$GOPATH/bin”
export PATH=”$PATH:$GOBIN”
最后source ./.profile
通过echo命令查看,然后重启
在src目录下安装beego与bee工具
go get github.com/astaxie/beego
go get github.com/beego/bee
生成API模板
bee api social-app-server
Github服务器创建git仓库
安装swagger文档
sudo apt install nodejs
bee run -gendoc=true -downdoc=true
安装MySQL:
root密码root
sudo apt install mysql-server
新建用户app_root
CREATE DATABASE social_app;
CREATE USER ‘ubuntu‘@’localhost’ IDENTIFIED BY ‘IS1501’;
GRANT Alter, Alter routine, Create, Create routine, Delete, Drop, Execute, Index, Insert, References, Select, Update ON social_app.* TO ‘ubuntu‘@’localhost’;
建立用户基本信息表
DROP TABLE IF EXISTS user;
create table USER (
USER_ID varchar(11) not null,
USER_NAME varchar(40) not null,
PASSWORD varchar(40) not null,
primary key (USER_ID)
);
一条动态的存储策略
drop table if exists MOMENT
create table MOMENT
(
moment_id bigint not null,
moment_time varchar(128) not null,
moment_tag varchar(128),
text_location varchar(1024),
image_location varchar(1024),
primary key (moment_id)
);
记着开辟新的存储路径res
1 | mkdir res/ |
数据库中并不存储动态中的文本和图片,而是将他们作为服务器磁盘文件来存储,文件名为服务器端利用时间戳生成的id。所以数据库中只能对id,时间,标签进行搜索,而无法对文本和图片进行搜索。下面是从数据库下res文件中拷贝出来的一个图片文件,我们来进行一个测试:
参考链接
Golang 国内的镜像源:https://blog.csdn.net/weixin_43064185/article/details/123797508
评论
shortname
for Disqus. Please set it in_config.yml
.