DAY-13 入门Go项目8 | 青训营笔记

218 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天

初识 Go 语言Web框架

五、Buffalo——适合于快速开发的Go Web框架

概要及特点介绍

Buffalo 框架内置工具包,提供了工具箱 buffalo 命令用于生成应用的许多架构并能够运行常规的 Web 应用任务;使用 Webpack 生成的配置来构建前端资产,以便开发者可以优化后端和前端;具有热代码重新加载功能——支持编码、保存、刷新,可以通过使用 buffalo dev 命令从后端到前端重新构建;支持数据库有 MySQL/MariaDB、PostgreSQL、CockroachDB、SQLite;拥有更快地路由功能;具有模块化功能,通过工具箱使用类似 Rails 的语法使用 Lush 编写模板,使用自定义帮助程序扩展其功能;另外,Buffalo 可帮助开发者定义测试套件,在工作箱中通过操作、资源、模型生成器为刚生成的代码创建测试模板。

Buffalo 源码:github.com/gobuffalo/b…

Buffalo 文档:gobuffalo.io

Buffalo 中文文档: learnku.com/docs/buffal…

Buffalo 的安装

安装前需要注意本地 Go 的版本必须为v1.16 或更高版本,在 Windows 上安装 Buffalo 需要使用 Scoop 软件包管理器来安装:

安装 Scoop 包管理器:

  1. 在 PowerShell 中打开远程权限:

Set-ExecutionPolicy RemoteSigned -scope CurrentUser

  1. 自定义 Scoop 安装目录:
>irm get.scoop.sh -outfile 'install.ps1' .\install.ps1 -ScoopDir 'D:\PackageManagers\Scoop' -ScoopGlobalDir 'D:\PackageManagers\Global' -NoProxy

接着安装 Buffalo: scoop install buffalo

Buffalo 的Demo项目创建与测试

创建项目

Buffalo 其简洁性和快速性在创建项目上体现得也十分显著,首先到项目的目录下,通过命令来创建新项目: buffalo new coke

创建自定义应用

Buffalo 模块化通过命令选择参数来构建应用程序,buffalo new [name] [flags]

如下代码所示,通过New方法创建一个 Buffalo 应用(路由),创建的应用配置可以在 app.go 查看:

import (
    "net/http"
    "github.com/labstack/echo/v4"
)

func main() {
    // 实例
    a := buffalo.New(buffalo.Options{
      Env: ENV,
      SessionName: "_coke_session",
    })
}

热重载运行项目

若开发者想要在自定义端口上运行开发服务器,可以通过提供环境变量来配置开发服务器端口,如3001: PORT=3001 buffalo dev