文章目录
web小应用之cloudgo-io
1、概述
1.1 功能
这是一个简单的web小应用,有以下几个功能:
- 支持静态文件服务
- 支持简单的js访问
- 提交表单,并输出一个表格
- 对/unknow给出开发中的提示,返回码501
1.2 运行
- 转到main.go所在目录,执行以下命令
go run main.go # 不指定端口默认8080
or
go run main.go -p 9090 # 指定监听9090端口
or
go install && cloudgo-io [-p ...] # 先安装之后可以直接使用cloudgo-io或cloudgo-io -p ...命令启动
- 在浏览器地址栏输入
# 登录界面
http://localhost:yourport/login
# 静态资源文件服务
http://localhost:yourport/public
# 未开发
http://localhost:yourport/unknown
1.3 效果
- 主界面(背景来自我的github page)
- 支持静态文件服务
- 支持简单的js访问(可跳转到静态资源界面)
- 提交表单,并输出一个表格
- 对/unknow给出开发中的提示,返回码501
2、挑选框架
综合比较了最常见的六种框架后,我选择了iris,毕竟年份最新、功能最全、速度最快。
这是2017年的统计数据。虽然star数暂时没有beego那么多,但是iris比beego慢了四年诞生,发展得很快。
当然我选择iris最大的原因,还是因为下图,功能这么全,早进坑早享受。不过现在iris网上的教程比较稀缺,多数需要先跟着官方example一步一步摸索。
以上两幅图片引用自:
https://blog.csdn.net/dev_csdn/article/details/78740990
关于速度,见iris最新官方数据。
3、文件结构
没有硬性规定,但是最好把负责不同模块或功能的文件分到不同的文件夹,便于维护。我的文件结构如下:
cloudgo-io/
configs/
main.tml
static/
css/
js/
img/
services/
GetPages.go
ServicesManager.go
templates/
login.html
info.html
- configs中的main.tml文件可交由服务器管理员配置服务器后台。虽然也可以放在代码中配置,但是这样比较方便,不用每次都重新编译代码。
- static存放静态文件。
- services存放服务器提供服务的一系列代码,最后可以为这一系列服务安排一个manger统一管理,也方便统一调用。
- templates存放网页的模板,在模板中需要留一些待注入的标记,有了这些预设的标记便可以在代码中找到对应的标记进行填充,比直接找element方便许多。
<table border="1">
<tr>
<th>username</th>
<td>{
{.username}}</td>
</tr>
<tr>
<th>password</th>
<td>{
{.password}}</td>
</tr>
</table>
以下介绍一些我的一些关于iris的探索成果和使用心得
4、iris的简单使用
4.1 获取iris
go get -u github.com/kataras/iris
4.2 使用的套路
- 最简单版(官方例子)
package main
import "github.com/kataras/iris"
func main() {
app := iris