当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

Echo

微型 Web 框架
授权协议 MIT
开发语言 Google Go
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 郎欣然
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Echo 是一个用 Go 语言开发的快速 HTTP 路由器(零内存分配)和微型 Web 框架。

性能比较:

 

特性:

  • Zippy router.

  • Extensible middleware/handler, supports:

    • func(*echo.Context)

    • http.Handler

    • http.HandlerFunc

    • func(http.ResponseWriter, *http.Request)

    • func(*echo.Context)

    • func(echo.HandlerFunc) echo.HandlerFunc

    • func(http.Handler) http.Handler

    • http.Handler

    • http.HandlerFunc

    • func(http.ResponseWriter, *http.Request)

    • Middleware

    • Handler

  • Handy encoding/decoding functions.

  • 支持静态文件处理

示例代码:

package main

import (
    "net/http"

    "github.com/labstack/echo"
    mw "github.com/labstack/echo/middleware"
    "github.com/rs/cors"
    "github.com/thoas/stats"
)

type user struct {
    ID   string `json:"id"`
    Name string `json:"name"`
}

var users map[string]user

func init() {
    users = map[string]user{
        "1": user{
            ID:   "1",
            Name: "Wreck-It Ralph",
        },
    }
}

func createUser(c *echo.Context) {
    u := new(user)
    if c.Bind(u) {
        users[u.ID] = *u
        c.JSON(http.StatusCreated, u)
    }
}

func getUsers(c *echo.Context) {
    c.JSON(http.StatusOK, users)
}

func getUser(c *echo.Context) {
    c.JSON(http.StatusOK, users[c.P(0)])
}

func main() {
    e := echo.New()

    //*************************//
    //   Built-in middleware   //
    //*************************//
    e.Use(mw.Logger)

    //****************************//
    //   Third-party middleware   //
    //****************************//
    // https://github.com/rs/cors
    e.Use(cors.Default().Handler)

    // https://github.com/thoas/stats
    s := stats.New()
    e.Use(s.Handler)
    // Route
    e.Get("/stats", func(c *echo.Context) {
        c.JSON(200, s.Data())
    })

    // Serve index file
    e.Index("public/index.html")

    // Serve static files
    e.Static("/js", "public/js")

    //************//
    //   Routes   //
    //************//
    e.Post("/users", createUser)
    e.Get("/users", getUsers)
    e.Get("/users/:id", getUser)

    // Start server
    e.Run(":8080")
}
  • echo的使用 首先在第一章已经输出了第一个程序脚本echo “hello world”,这也是echo的使用,在脚本中echo的使用比较频繁,类似与c语言中的printf函数,echo可以直接带上echo “输出内容”,也可以echo $变量将变量的值打印出来,后面会介绍命令中带上双引号" "、反引号``和单引号’'的区别。 双引号" "、反引号和单引号’ '的区别 单引号: echo ' T

  • 营销树今天精心准备的是《linuxecho》,下面是详解! Linux命令echo -e 在Linux命令中echo-e这个参数e是什么意思。给个具体用法。或者说echo–e“Iwilluse‘touch’commandtocreate3files.”这里参数e的作用是什么... 在Linux命令中 echo -e 这个参数e是什么意思。 给个具体用法。或者说 echo –e “I will us

  • 一、回显命令 用于控制显示文本内容或显示命令内容或显示操作内容。 二、用法介绍 2.1echo on ::echo on ::--打开回显。系统默认为on,一般不用,除非曾经执行过echo off后需要显示回显的时候。 echo on echo the echo is on. 2.2echo off ::echo off ::--关闭回显。关闭其指令后面所有的批处理回显,只显示执行后的结果,除非遇

  • 一、常用选项 echo -n 表示不换行输出 echo -e 输出转义字符,将转义后的内容输出到屏幕上 二、常用的转义字符 字符 含义 \b 转义后相当于按退格键(backspace) ,但前提是"\b"后面存在字符; “\b"表示删除前一一个字符,”\b\b" 表示删除前两个字符。 \c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo -n;但是当"\c"后面仍然存在字符时,"

  • 命令概述 echo(显示文字)echo会将输入的字符串送往标准输出,输出的字符串间以空白字符隔开, 并在最后加上换行号; 命令语法 echo [-ne][字符串] / echo [--help][--version] 参数说明 -n 取消自动换行; -e 打开反斜杠ESC转义; \a 提示音; \b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n 换行且

  • 简述: 覆盖型写法 (文件里原来的内容被覆盖) echo "aaa" > a.txt echo aaa > a.txt 添加型写法 (新内容添加在原来内容的后面) echo "aaa" >> a.txt echo aaa >> a.txt 其中 echo >or>> file, 在 user space 中会赋值到 buf 中为 string+换行符, 传入到 kernel space

  • Shell中的echo命令类似于php中的echo命令,都是用于输出。Shell中另有一个输出命令为printf命令,我没有另写文章介绍该命令,大家可以在Shell printf 命令中查阅学习。 本文中的一系列实例用到的命令我都是在终端直接写的,输出也是输出在终端,这样方便学习和记录吧!其实也都可以放到脚本文件中执行。 一、语法 echo [-neE] [arg ...] (1)含义 -n:

  • 一、Linux 中的echo指令 Shell 的 echo 指令用于字符串的输出。详见: Shell echo命令 | 菜鸟教程 二、echo > 和echo >> echo > 和echo >>的区别详见: Linux echo的 > 和 >>_xiaotongzhi_w的博客-CSDN博客 sudo echo "export PYTHONPATH="/usr/local/lib/python2

 相关资料
  • 本章重点介绍Web框架及其部署。 PyCharm具有部署代码和文件的简单功能。 要使用PyCharm部署代码,我们需要添加一个带有菜单选项Settings -》 Build, Execution-》 Deployment的Web服务器。 现在,包括部署项目所需的各种配置的所有设置。 在Mappings选项卡中,用户可以指定本地代码的位置以及远程复制到何处。 可以使用Tools -》 Deploym

  • tornado.web — RequestHandler and Application classes Thread-safety notes Request handlers Entry points Input Output Cookies Other Application configuration Decorators Everything else tornado.template

  • 本页面主要用于 Golang Echo 框架官方首页的汉化,作为中文版的Echo的使用介绍。

  • 本章重点介绍Web框架及其部署。 PyCharm具有部署代码和文件的简单功能。 要使用PyCharm部署代码,我们需要添加一个带有菜单选项:Settings -> Build, Execution -> Deployment 来部署Web服务器。 现在,包含部署项目所需的各种配置的所有设置。 在Mappings 选项卡中,用户可以指定本地代码的位置以及它应该远程复制到的位置。 代码可以使用工具菜单

  • 22. Web MVC框架

  • 第十三章介绍了如何开发一个Web框架,通过介绍MVC、路由、日志处理、配置处理完成了一个基本的框架系统,但是一个好的框架需要一些方便的辅助工具来快速的开发Web,那么我们这一章将就如何提供一些快速开发Web的工具进行介绍,第一小节介绍如何处理静态文件,如何利用现有的twitter开源的bootstrap进行快速的开发美观的站点,第二小节介绍如何利用前面介绍的session来进行用户登录处理,第三小

  • 了解了WSGI框架,我们发现:其实一个Web App,就是写一个WSGI的处理函数,针对每个HTTP请求进行响应。 但是如何处理HTTP请求不是问题,问题是如何处理100个不同的URL。 每一个URL可以对应GET和POST请求,当然还有PUT、DELETE等请求,但是我们通常只考虑最常见的GET和POST请求。 一个最简单的想法是从environ变量里取出HTTP请求的信息,然后逐个判断: de

  • 了解了WSGI框架,我们发现:其实一个Web App,就是写一个WSGI的处理函数,针对每个HTTP请求进行响应。 但是如何处理HTTP请求不是问题,问题是如何处理100个不同的URL。 每一个URL可以对应GET和POST请求,当然还有PUT、DELETE等请求,但是我们通常只考虑最常见的GET和POST请求。 一个最简单的想法是从environ变量里取出HTTP请求的信息,然后逐个判断: de