Hexya是一个用Go编写的开源ERP和业务应用程序开发框架

网友投稿 1734 2022-10-11

Hexya是一个用Go编写的开源ERP和业务应用程序开发框架

Hexya是一个用Go编写的开源ERP和业务应用程序开发框架

Hexya

Hexya is an open source ERP and a business application development framework written in Go.

This repository houses the business application development framework. The ERP is built by integrating modules of the Hexya Addons Project

Features of the framework

The Hexya framework is designed to develop business applications quickly and safely. It includes all needed components in a very opinionated way.

The examples below are here to give you a first idea of Hexya.

Head to the /doc directory and especially our Tutorial if you want to start developing your business application with Hexya.

ORM

Hexya includes a full-featured type safe ORM, including a type safe query builder.

Declare a model and add some fields

var fields_User = map[string]models.FieldDefinition{ "Name": fields.Char{String: "Name", Help: "The user's username", Unique: true, NoCopy: true, OnChange: h.User().Methods().OnChangeName()}, "Email": fields.Char{Help: "The user's email address", Size: 100, Index: true}, "Password": fields.Char{}, "IsStaff": fields.Boolean{String: "Is a Staff Member", Help: "Set to true if this user is a member of staff"},}func init() { models.NewModel("User") h.User().AddFields(fields_User)}

Use the ORM to create a record in the database with type-safe data

newUser := h.User().Create(env, h.User().NewData(). SetName("John"). SetEmail("john@example.com"). SetIsStaff(true))

Search the database using the type-safe query builder and update records directly

myUsers := h.User().Search(env, q.User().Name().Contains("John"). And().Email().NotEquals("contact@example.com"))for _, myUser := range myUsers.Records() { if myUser.IsStaff() { myUser.SetEmail("contact@example.com") } }

Add methods to the models

// GetEmail returns the Email of the user with the given namefunc user_GetEmail(rs m.UserSet, name string) string { user := h.User().Search(env, q.User().Name().Equals("John")).Limit(1) user.Sanitize() // Call other methods of the model return user.Email() // If user is empty, then Email() will return the empty string}func init() { h.User().NewMethod("GetEmail", user_GetEmail)}

Views

Define views of different types using a simple XML view definition and let the framework do the rendering:

上一篇:4 案例演示 -自定义镜像运行Nginx及tomcat服务并基于NFS实现动静分离
下一篇:v86.01 鸿蒙内核源码分析(静态分配篇) | 很简单的一位小朋友 | 百篇博客分析 OpenHarmony 源码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~