gin框架下创建代码生成器
最近在用Go 的gin框架重构之前PHP开发的老项目,由于基础不扎实,打算从零开始进行开发,在写Model和Service时感觉效率比较低,并且大量代码重复,所以就自己用template模板来实现代码的生成。
其中遇到一些问题,记录一下。
一:在使用模板时不能使用模板定义标签如
{
{define "index/index.html"}}
{
{end}}
上述标签如果存在则获取不到模板数据
代码生成模板的正确写法如下:
//model.tmpl
package model
import (
"fmt"
"gin-icqqg/config"
"github.com/gin-gonic/gin"
)
//{
{.Model}} {
{.Name}}表
type {
{.Model}} struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement;type:int(11);" json:"id,omitempty"`
{
{- range $i,$v:=.Filed}}
{
{$v.Name}} {
{$v.Type}} `gorm:"column:{
{$v.Column}};type:{
{$v.SqlType}}({
{$v.Size}});" json:"{
{$v.Column}},omitempty"` //{
{$v.comment}}
{
{- end}}
CreatedAt *LocalTime `gorm:"column:created_at" json:"created_at,omitempty"`
UpdatedAt *LocalTime `gorm:"column:updated_at" json:"updated_at,omitempty"`
DeletedAt *LocalTime `gorm:"column:deleted_at" json:"-,omitempty"`
}
type Add{
{.Model}} struct {
{
{- range $i,$v:=.Filed }}
{
{$v.Name}} {
{$v.Type}} `form:"{
{$v.Column}}" json:"{
{$v.Column}},omitempty"`//{
{$v.Comment}}
{
{- end}}
}
func New{
{.Model}}() *{
{.Model}} {
//自动迁移
db.AutoMigrate(&{
{.Model}}{})
if !db.Migrator().HasTable(&{
{.Model}}{}) {
//创建表
db.Set("gorm:ENGINE", "InnoDB").Migrator().CreateTable(&{
{.Model}}{})
}
return &{
{.Model}}{}
}
func (m *{
{.Model}}) TableName() string {
return "{
{.TableName}}"
}
//List 获取{
{.Name}}列表展示的
//get
func (m *{
{.Model}}) List(c *gin.Context) {
var {
{.Model}}List []{
{.Model}}
err := db.Model(&{
{.Model}}{}).Find(&{
{.Model}}List).Error
if err != nil {
config.ErrorLog(fmt.Sprintf("%v", err))
c.JSON(200, gin.H{"code": 500, "
转载:https://blog.csdn.net/weixin_41667637/article/details/129590132
版权声明:
作者:漏网的鱼
链接:https://www.csev.cn/share/code/20240403150.html
来源:彩色动力-测试分享
版权声明:本文欢迎任何形式转载,转载时完整保留本声明信息(包含原文链接、原文出处、原文作者、版权声明)即可。本文后续所有修改都会第一时间在原始地址更新。
作者:漏网的鱼
链接:https://www.csev.cn/share/code/20240403150.html
来源:彩色动力-测试分享
版权声明:本文欢迎任何形式转载,转载时完整保留本声明信息(包含原文链接、原文出处、原文作者、版权声明)即可。本文后续所有修改都会第一时间在原始地址更新。
THE END
二维码
打赏
文章目录
关闭
共有 0 条评论