golang 学习笔记 整理

golang基础部分:

go无法下载安装 git插件,是因为 go代理的ip地址无法访问,可以更换下地址:

默认使用的是proxy.golang.org,在国内无法访问

 go>go get -u github.com/go-sql-driver/mysql

 go>go env -w GOPROXY=https://goproxy.cn

goweb 部分:

goweb 的四种链接方式:

net/http 包

package main

import (
	"fmt"
	"net/http"
)

func handel(w http.ResponseWriter, r *http.Request) {
	// fmt.Fprintln(w, "helloword !!!", r.URL)
	fmt.Fprintln(w, "用多路复用器 helloword !!!", r.URL)
}

func main() {
	//1.第一种
	//最简单最常用的方式
	// http.HandleFunc("/", handel)
	// http.ListenAndServe(":8080", nil)

	//2.第二种
	//创建多路复用器来调用自己的handel
	mux := http.NewServeMux()
	mux.HandleFunc("/", handel)
	http.ListenAndServe(":8080", mux)

}

package main

import (
	"fmt"
	"net/http"
	"time"
)
type MyHandel struct{}

func (this *MyHandel) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "正在通过自己的 handel 处理数据...", r.URL)
	fmt.Fprintln(w, "通过详细配置 来处理数据")
}
func main() {
	//3.第三种:
	//简单配置调用
	var myHandel MyHandel
	// http.Handle("/myhandel", &myHandel)
	// http.ListenAndServe(":8080", nil)
	//4.第四种:
	//通过配置 详细server 调用
	server := http.Server{
		Addr:        ":8080",
		Handler:     &myHandel,
		ReadTimeout: 2 * time.Second,
	}
	server.ListenAndServe()
}

 goweb 链接数据库:

database/sql 包

安装 第三方的 驱动包

demo:

两种增删改的方式:

1.带预编译

 

2.不带预编译

 3.

查询 sql

查一条:

api:

 

 查全部:

 

 

 

testing 包  测试:

1.文件名必须是 xxx_testing.go

2.测试文件必须与被测试文件在一个文件夹下

3.func 函数名命名规则: 建议 必须Test开头,第二个字母大写 驼峰式命名,如:TestXxx ,TestAddUser

4.操作命令 行:go test

例:

 

第二种执行方式:

子程序的执行

第三种: 

TestMain 方式:

go test  -v 打印详细信息

package main

import (
	"fmt"
	"testing"
)

//TestMain 在 TestAddUser 之前先被调用
func TestMain(m *testing.M) {
	fmt.Println("TestMain 程序  ...被调用")
	m.Run()
}

//必须Test开头+大写字母+其他 TestAddUser
//文件命名 必须是 xxx_test.go 以 test.go 结尾
func TestAddUser(t *testing.T) {
	fmt.Println("TestAddUser ...被调用")
	t.Run("testUser", testUser)
}

func testUser(t *testing.T) {
	fmt.Println("testUser 子程序  ...被调用")
}

运行结果:

go  test :

go test -v

 

3, 获取 request 数据 请求数据

api: 

 

 

 

 

 

 

 结果:

获取请求参数:

 

 测试 paraseForm 时 要把上边其他 测试关闭,以防有影响

 

 

 api:

 

 结果:

响应请求:

 

相应一个页面:

 

 json 方式响应:

 

 重定向:

 

 结果:

 

go 的模板引擎:

 api: 

 

 

 

 后台:

 

界面

 

后台:

结果:

 

 

go 处理静态资源:

 

 

 书城项目:

 初始化数据库系统:

 创建表 

 

testing 

 

 

 

 

 

注册:

 

 动作:

例子:

后台:

前台: 迭代:

 

 

例子:

后台:

前台:

 遍历map

 遍历管道:

 

 

例子:

 

 前端: 

结果:

 

 

包含动作:

 

 定义动作:

 

 

 

 

 

 

 块动作:

 继续书城项目:

创建数据库 表:

新增 book 结构体

 后台:

  测试一下:

 修改 html 调用 href

 

 

 添加图书:

control:

dao main: 

测试:

 前端:

 结果:

 

 删除:

dao:

test:

 go test

main 

 control:

 

 

 

 

 结果:

修改:

 dao:

查一本书:

test:control:界面:

 

 

 

合并 添加 和更新页面,区别在于 是不是又图书的 id 如果又id 则为更新,如果没有则为添加

删除添加页面 ,修改下更新页面:

 

 

后台部分:

 main:

 

 分页

 数据库分页原理:

 创建 分页结构体

 

 

实现分页函数:

 ​​​​​​

main:

 

 

去首页:

同上类似

 加条件的查询  同  正常取列表,只是 sql 语句里需要加对应的条件语句,其他不变 

7、会话控制 

设置 cookie的两种方式

 获取 cookie

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

页面判断: 

 登出 :

 //判断重复登录:

 购物车:

每条的 item struct 结构体

 

 购物车的 struct

 

 购物车 的 增删改查,同 book 的增删改查

订单  的 增删改查,同 book 的增删改查

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值