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 的增删改查

1071

被折叠的 条评论
为什么被折叠?



