go 语言 web 开发和数据库查询

import (
       "fmt"
       "net/http"
       "WebCommand/db"
       "log"

)

type Net_tcp_pt_v struct {
       Server_ip string
       Server_t string
       Address      string
       State        string
       Program_name string
       Count string
       Input_t string
}
type Net_tcp_pt_v_slice struct {
       V []Net_tcp_pt_v
}

func handlenetpt(w http.ResponseWriter, r *http.Request) {
       fmt.Println("get in handlecpu ")
	//处理跨域访问问题
       w.Header().Set("Access-Control-Allow-Origin", "*")
       w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")
       w.Header().Set("Access-Control-Allow-Headers","Action, Module")
       if "GET" == r.Method {


              fmt.Println(db.Remot_os_diskrw_visit())
              //返回数据--调用数据库查询数据
              fmt.Fprintln(w,db.Remot_os_netpt_visit())
              return
       }

}


func main() {

       fmt.Println("hello world")

   	//请求路径 - - 处理方法
       http.HandleFunc("/netpt/", handlenetpt)
       err := http.ListenAndServe(":9090", nil) //设置监听的端口
       if err != nil {
              log.Fatal("ListenAndServe: ", err)
       }

}
/使用mysql 查询数据///
import (
       "database/sql"
       _ "github.com/go-sql-driver/mysql"
       //"time"

       "fmt"
       "encoding/json"
       //"time"
       "strings"
)

func Remot_os_netpt_visit()string {

       db, _ := sql.Open("mysql", "root:jingxin@tcp(127.0.0.1:3306)/system_visit")
       defer db.Close()
       //var str_time_now = time.Now().Format("2006-01-02 15:04:05");  //返回当前六分钟的数据
       //rows, _ := db.Query("select * from remot_os_task where input_time > (? -INTERVAL 6 MINUTE)" , str_time_now)
       rows, _ := db.Query("select * from remot_os_net_pt where 1=1")



       var my_netpt_slice Net_tcp_pt_slice
       var  res_json string
       for rows.Next(){
              var server_ip string
              var remote_server_mac string
              var server_t string
              var Address string
              var State string
              var Program_name string

              var input_time string

              rows.Scan(&server_ip, &remote_server_mac, &server_t, &Address,&State, &Program_name,  &input_time)

              var my_netpt_task = Net_tcp_pt_v{Server_ip:server_ip ,Server_t: server_t,Address:Address ,State:State ,Program_name:Program_name ,Count: "",Input_t: input_time}

              my_netpt_slice.N = append(my_netpt_slice.N ,my_netpt_task )
              //fmt.Println(my_task_slice)
       }
       res , _ :=json.Marshal(my_netpt_slice)
              //fmt.Println(string(res))
              res_json = string(res)


return res_json
}
使用mongo查询数据
import (
       "encoding/json"

       //"strings"
       "fmt"
       "gopkg.in/mgo.v2"
       "gopkg.in/mgo.v2/bson"

       "time"
)

func Remot_os_netpt_visit(ip string , date_time string)string {

       mgoSession = getSession()
       defer mgoSession.Close()
       col := mgoSession.DB("system_vist").C("remote_os_net_pt")
       result := Net_tcp_pt_v{}
       var res_cpu Net_tcp_pt_v_slice
       iter := col.Find(bson.M{ "server_ip" :  {"$regex": "192.168.201.128", "$options":'i'} , "server_t" : { "$gt":   "2016-12-02 03:54:21" } } ).Iter()
       for iter.Next(&result) {
              fmt.Printf("Result: %v\n", result.Server_ip)
              res_cpu.V = append(res_cpu.V, result)
       }
       res , _ :=json.Marshal(res_cpu)
       //fmt.Println(string(res))
       res_json := string(res)
       return res_json
}



1.Go环境配置 1.1. Go安装 1.2. GOPATH 与工作空间 1.3. Go 命令 1.4. Go开发工具 1.5. 小结 2.Go语言基础 2.1. 你好,Go 2.2. Go基础 2.3. 流程和函数 2.4. struct 2.5. 面向对象 2.6. interface 2.7. 并发 2.8. 小结 3.Web基础 3.1 web工作方式 3.2 Go搭建一个简单的web服务 3.3 Go如何使得web工作 3.4 Go的http包详解 3.5 小结 4.表单 4.1 处理表单的输入 4.2 验证表单的输入 4.3 预防跨站脚本 4.4 防止多次递交表单 4.5 处理文件上传 4.6 小结 5.访问数据库 5.1 database/sql接口 5.2 使用MySQL数据库 5.3 使用SQLite数据库 5.4 使用PostgreSQL数据库 5.5 使用beedb库进行ORM开发 5.6 NOSQL数据库操作 5.7 小结 6.session和数据存储 6.1 session和cookie 6.2 Go如何使用session 6.3 session存储 6.4 预防session劫持 6.5 小结 7.文本文件处理 7.1 XML处理 7.2 JSON处理 7.3 正则处理 7.4 模板处理 7.5 文件操作 7.6 字符串处理 7.7 小结 8.Web服务 8.1 Socket编程 8.2 WebSocket 8.3 REST 8.4 RPC 8.5 小结 9.安全与加密 9.1 预防CSRF攻击 9.2 确保输入过滤 9.3 避免XSS攻击 9.4 避免SQL注入 9.5 存储密码 9.6 加密和解密数据 9.7 小结 10.国际化和本地化 10.1 设置默认地区 10.2 本地化资源 10.3 国际化站点 10.4 小结 11.错误处理,调试和测试 11.1 错误处理 11.2 使用GDB调试 11.3 Go怎么写测试用例 11.4 小结 12.部署与维护 12.1 应用日志 12.2 网站错误处理 12.3 应用部署 12.4 备份和恢复 12.5 小结 13.如何设计一个Web框架  13.1 项目规划  13.2 自定义路由器设计 13.3 controller设计 13.4 日志和配置设计 13.5 实现博客的增删改 13.6 小结  14.扩展Web框架 14.1 静态文件支持 14.2 Session支持 14.3 表单支持 14.4 用户认证 14.5 多语言支持 14.6 pprof支持 14.7 小结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值