• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Golang > 利用Go语言初步搭建一个web应用的教程

利用Go语言初步搭建一个web应用的教程

作者:goldensun 字体:[增加 减小] 来源:互联网

goldensun 通过本文主要向大家介绍了go语言web开发,go语言web下载文件,go语言web,go语言web框架,go web编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1.Abstract

在学习web开发的过程中会遇到很多困难,因此写了一篇类似综述类的文章。作为路线图从web开发要素的index出发来介绍golang开发的学习流程以及Example代码。

在描述中多是使用代码来描述使用方法不会做过多的说明。最后可以方便的copy代码来实现自己的需求。

本文适应对象:

  •     对web开发有一定经验的人
  •     能够灵活使用ajax的人(至少懂得前后分离)
  •     golang web 开发有一定了解,至少略读过一些golang web开发的书籍

看完本文之后您会收获:

  •     golang web开发的一些技巧
  •     golang web开发的一些实用API

本文在描述的时候为了解释尽量详细,已经把解释写到代码注释中。
2.golang web 开发check list

    略过的部分:基本流程控制,OOP等基础语法知识。

3.路由器

    路由器是整个网站对外的灵魂,如果路由做的不好URL会非常恶心。所以这部分设计成第一个要说的内容。

    路由分两种一种是手动路由为了通过tul调度固定的功能,另外一点就是资源的获取,通过url的分析来模仿静态页的方式来获取资源(类似get)

    自动路由,主要使用OOP的COMMAND模式来实现。所有功能使用post,统一入口,方便权限管理,安全管理,跨域管理。但是如此强大的功能还是交给框架来做吧。这里就不给新手做参考了。

3.1手动路由

        import (
      "log"
      "net/http"
      )
      func main() {
        RouterBinding() // 路由绑定函数
        err := http.ListenAndServe(":9090", nil) //设置监听的端口
        if err != nil {
          log.Fatal("ListenAndServe: ", err)
        }
      } </div>

在httpserver运行之前先绑定路由
3.2 手动路由的绑定
3.2.1 静态文件

   

3.2.2 固定函数与资源获取

他们都是一样的

   

4.页面加载
4.1 纯静态页(HTML)

    直接交给路由就行了。自动就访问那个文件夹了。不过生产环境果然还得是cdn,如果自己服务器比较多。可以nginx反向代理。

    主要好处前后分离,能上CDN就是通讯次数多了。不过通过优化改善之类的都还ok啦。

4.2 模板页面的加载

        "pages/common/navbar.gtpl", "pages/common/tail.gtpl")
    if err != nil {
      panic(err.Error())
    }
    navArgs := map[string]string{"Home": "home", "User": "yupengfei"}//复杂的参数开始往里塞
    knowledgePage, err := template.ParseFiles("pages/knowledge/knowledge.gtpl")
    knowledgeArgs := map[string]interface{}{"Head": "This is a test title",
    "Author": "kun.wang", "PublishDatetime": "2014-09-14",
    "Content": template.HTML("<p style=\"text-indent: 2em\">为什么要用语义呢?</p>")}//不是不好,只是做字符串分析会影响工程效率
    commonPage.ExecuteTemplate(w, "header", nil)// render 开始
    commonPage.ExecuteTemplate(w, "navbar", navArgs)
    knowledgePage.ExecuteTemplate(w, "knowledge", knowledgeArgs)
    commonPage.ExecuteTemplate(w, "tail", nil) </div>

仅提供关键代码。

    其他的都还挺好,就是页面渲染用服务器是不是有点太奢侈了。
    字符串数组作为输入参数差错比较困难
    总结:虽然减少的通讯次数,但是没办法上CDN蛋疼,另外,模板的mapping蛋疼。

5.表示层脚本

表示层脚本做的比较困难也不是很好学。但是一旦搞定了,代码的复用性会有非常可观的提升。

    就普通情况而言JS开发效率是非常高的灵活度高,并且使用的是客户端的cpu性能好,免费资源多,学习的人也多,好招聘。

5.1 require.js
5.1.1 加载

   

整个网页之留这么一个加载脚本的入口(每个页面最好只有一个js文件)

好处

    js是延迟加载。不会出现网页卡死的情况
    最大化使用缓存。(HTTP 304)
    一个网页只用一个js
    dom事件绑定,不用在html控件上写js绑定了

坏处

    学习比较难
    网站更新始终有缓存没更新的浏览器。造成错误(所以有些情况客户自己就知道多刷新几次了,已经成用户习惯了)

参数解释

    `data-main` 业务逻辑入口,载入当前字符串.js这个文件
    `language` 不解释
    `defer async` 字面意思
    `src` r.js就是require.js的意思。代码到处都能搞到。

5.1.2 页面Business

加载依赖文件

        require.config({
      baseUrl: require.baseUrl,
      paths: {
        "jquery": "js/jquery-1.10.2.min",
        "domready" : "reqmod/domReady",
        "pm" : "reqmod/pmodal",
        "cookie":"reqmod/cookie",
        "user":"reqmod/user",
        "bootstrap": "reqmod/bootstrap.min",
        "nav":"reqmod/nav"
      },
      shim: {
        'bootstrap': {
        &nb

您可能想查找下面的文章:

  • Go语言使用HTTP包创建WEB服务器的方法
  • 利用Go语言初步搭建一个web应用的教程
  • go语言实现通过FTP库自动上传web日志
  • Go语言实现的web爬虫实例
  • Go语言实现简单Web服务器的方法
  • Go语言实现简单的一个静态WEB服务器
  • Go语言实现的一个简单Web服务器
  • Go语言开发环境搭建与初探(Windows平台下)

相关文章

  • Go语言展现快速排序算法全过程的思路及代码示例
  • Go并发编程实践
  • Go语言编程入门超级指南
  • 在Go语言程序中使用gojson来解析JSON格式文件
  • go语言通过odbc操作Access数据库的方法
  • go语言中range用法
  • go语言返回1-99之间随机数的方法
  • Go语言中的range用法实例分析
  • 举例详解Go语言中os库的常用函数用法
  • Go语言通过http抓取网页的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • golang判断chan channel是否关闭的方法
    • 在Mac OS上安装Go语言编译器的方法
    • 使用Go语言实现微信公众平台
    • Golang算法问题之数组按指定规则排序的方法分析
    • Go语言编程中字符串切割方法小结
    • Go语言实现socket实例
    • GO语言映射(Map)用法分析
    • go语言操作redis连接池的方法
    • go语言制作一个gif动态图
    • 在Go语言程序中使用gojson来解析JSON格式文件

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有