分类目录归档:backend

[ 断言,判断类型[golang] ]


判断变量类型

  • 使用reflect标准库

案例: 获取结构体里, 每个字段的类型type, 名字name, 值value

package main

import (
    "fmt"
    "reflect"
)

type User struct {
    Id   int
    Name string
}

func (u *User) Call() {
    fmt.Println("user is called ..")
    fmt.Printf("%v\n", u)
}

func To

< Read more >

[ go-rpc[原生] ]


原生的rpc服务

client.go

package main 

import (
    "fmt"
    "net/rpc"
)

type Request struct {
    Num1 int
    Num2 int
}

type Response struct {
    Num int
}

func main() {
    req := Request{Num1: 1, Num2: 2}
    client, err := rpc.DialHTTP("tcp", ":8080") //

< Read more >

[ grpc[安装] ]


grpc工具包下载

grpc官网

创建proto文件

// 声明protobuf版本
syntax = "proto3";
// option go_package = "path;name";  path 表示生成的go文件的存放地址,会自动生成目录
// name表示生成的go文件所属的包名
option go_package = "/hello_grpc";
package hello_grpc;

message HelloRequest {
    string name = 1;
    string message = 

< Read more >

[ golang[基础] ]


官网下载

  • 检查环境变量 加上 go安装地址/bin目录
  • 添加GOPATH为以后写项目代码的路径 1

  • 在GOPATH下创建, src, bin, pkg三个文件夹 2

  • 在src下创建项目 3

  • 项目内容案例 4

  • 执行go mod init 初始化包管理器 5

  • 切换项目的时候, 也要切换gopath的路径? 目前是这样的

  • 在vscode中安装go代码提示等工具时终端输入,防止网络下载失败 设置代理: go env -w GOPROXY=https://proxy.golang.com.cn,direct

Go语言基础

运行

go run main.go

1. 导包

< Read more >

[ gorm[基础] ]


gorm基本查询

安装

  1. 安装gorm包
go get -u gorm.io/gorm
  1. 安装mysql驱动
go get -u gorm.io/driver/mysql

连接mysql数据库

package appinit

import (
    appglobal "gin_gorm_mark_vscode/applications/app_global"

    "gorm.io/driver/mysql"
    "gorm.io/gorm"
    "gorm.io/gorm/logger&quo

< Read more >

[ 读取yaml配置[go] ]


读取yaml文件[go语言]

1.安装

go get -u "gopkg.in/yaml.v3"

2.文件setting.yaml

mysql:
  host: 47.120.55.99
  port: 3306
  db: go_test
  user: root
  password: chenhaifeng
  log_level: dev
  config: ""

system:
  host: "0.0.0.0"
  port: 8080
  env: debug

3.读取配置

type Config struct

< Read more >

[ sqlalchemy+alembic数据库迁移 ]


  1. 安装
pip install alembic 
  1. 初始化
alembic init alembic
  1. 修改配置文件 alembic.ini文件 指定地址
sqlalchemy.url = mysql+pymysql://root:chenhaifeng@47.120.55.99:3306/fastapi
  1. env.py文件 指定表metadata
# target_metadata = mymodel.Base.metadata
from applications.extensions import metadata
from applications.models im

< Read more >

[ [databases异步]FastApi ]


Databases异步数据库官方文档

在fastapi中的使用

  1. 先安装
pip install databases
pip install databases[aiomysql]
pip install pymysql
  1. main.py文件
from typing import List

import databases
import sqlalchemy
from fastapi import FastAPI
from pydantic import BaseModel

DATABASE_URL = "mysql+pymysql://root:chenhaifeng@

< Read more >

[ Gin框架使用 ]


基本使用

安装(提前配置好gopath环境变量, mod包管理)

go get -u "github.com/gin-gonic/gin"

运行

go run main.go

一.个人项目展示

  • 使用github.com/gin-gonic/gin轻量级web框架
  • 使用gorm.io/gorm数据库第三方包
  • 使用gopkg.in/yaml.v3 读取yaml配置文件
  • 使用github.com/sirupsen/logrus 日志配置
  • 使用github.com/satori/go.uuid 生成uuid
  • ...等待补充

二.响应

  • 使用"-"来隐藏此属性的响应, 防

< Read more >