Lessgo — это простой, надёжный и эффективный веб-фреймворк, написанный на Go. Проект организован таким образом, чтобы обеспечивать разделение клиентской и серверной части, а также систем и бизнес-логики. Он идеально совместим с различными моделями разработки, такими как MVC и MVVC, что делает его особенно подходящим для создания корпоративных приложений и API-интерфейсов. Ключевой особенностью является возможность динамического изменения маршрутов во время выполнения программы.
Официальная группа QQ: Go-Web Programming 42730308
go get -u github.com/henrylee2cn/lessgo
go get -u github.com/henrylee2cn/less
go get -u github.com/henrylee2cn/lessgoext/...
import (
"github.com/henrylee2cn/lessgo"
"github.com/henrylee2cn/lessgoext/swagger"
_ "github.com/henrylee2cn/lessgoext/dbservice/xorm"
// _ "github.com/henrylee2cn/lessgoext/dbservice/gorm"
_ "github.com/henrylee2cn/lessgo_demo/middleware"
_ "github.com/henrylee2cn/lessgo_demo/router"
)
func main() {
// Включение автоматического создания API-документации с помощью конфигурационного файла config/apidoc_allow.myconfig
swagger.Reg()
// Указание корневого URL
lessgo.SetHome("/home")
// Запуск веб-сервера
lessgo.Run()
}
import (
. "github.com/henrylee2cn/lessgo"
"github.com/henrylee2cn/lessgo_demo/sysmodel/admin"
)
``````go
var Index = ApiHandler{
Desc: "Operation for entering the administrative panel",
Method: "POST|PUT",
Params: []Param{
{"user", "formData", true, "henry11111", "Username"},
{"user", "query", true, "henry22222", "Username"},
{"user", "path", true, "henry33333", "Username"},
{"password", "formData", true, "1111111111", "Password"},
{"password", "query", true, "2222222222", "Password"},
{"password", "path", true, "3333333333", "Password"},
},
Handler: func(c *Context) error {
// Reading cookies
id := c.CookieParam(Config.Session.SessionName)
c.Log().Info("Cookie value %v: %#v", Config.Session.SessionName, id)
},
}
``` // Чтение данных из session
c.Log().Info("Чтение данных из последнего запроса: %#v", c.GetSession("info"))
``` c.SetSession("info", map[string]interface{}{
"пользователь": c.FormParam("user"),
"пароль": c.FormParam("password"),
})
c.Log().Info("Путь пользователя: %#v", c.PathParam("user"))
c.Log().Info("Параметр запроса пользователя: %#v", c.QueryParam("user"))
c.Log().Info("Форм-данные пользователя: %#v", c.FormParam("user"))
c.Log().Info("Путь пароля: %#v", c.PathParam("password"))
c.Log().Info("Параметр запроса пароля: %#v", c.QueryParam("password"))
c.Log().Info("Форм-данные пароля: %#v", c.FormParam("password"))```go
return c.Render(200,
"sysview/admin/login/index.tpl",
map[string]interface{}{
"name": c.FormParam("user"),
"password": c.FormParam("password"),
"повторная_функция": admin.Login.Repeatfunc,
},
);
},
}.Reg();
import (
"strings"
)
type вход struct{}
var Вход = вход{}
func (_ вход) повторная_функция(s string, count int) string {
return strings.Repeat(s, count)
}
var ОтображениеЗаголовка = lessgo.ApiMiddleware{
Название: "Отображение заголовка",
Описание: "Тест отображения заголовка",
Конфиг: nil,
ПромежуточныйСлой: func(c *lessgo.Контекст) error {
c.Log().Info("Промежуточный слой тест - отображение заголовка: %v", c.Request().Header)
return nil
},
}.Reg()
package маршруты
import (
"github.com/henrylee2cn/lessgo"
)```markdown
"github.com/henrylee2cn/lessgo_demo/business_handler/home"
"github.com/henrylee2cn/lessgo_demo/middleware_layer"
)
func init() {
lessgo.Main(
lessgo.Branch("/websocket", home.Websocket, middleware_layer.HeaderView),
lessgo.Branch("/home", "frontend",
lessgo.Branch("/index", home.Index, middleware_layer.HeaderView),
).Use(middleware_layer.Print),
)
}
─Проект проектная директория ├─config конфигурационные файлы │ ├─app.config файл конфигурации системы │ └─db.config файл конфигурации базы данных ├─common общие компоненты серверной части │ └─... Например, utils и другие ├─middleware директория общих middleware серверной части ├─static общие компоненты клиентской части (URL: /static) │ ├─tpl директория общих шаблонов tpl │ ├─js директория общих скриптов JavaScript (URL: /static/js) │ ├─css директория общих стилей CSS (URL: /static/css) │ ├─img директория общих изображений (URL: /static/img) │ └─plugin директория общих плагинов JavaScript (URL: /static/plugin) ├─uploads по умолчанию директория загрузки файлов ├─router настройка маршрутизации исходного кода │ ├─sys_router.go файл конфигурации маршрута модуля системы │ ├─biz_router.go файл конфигурации маршрута модуля бизнеса ├─sys_handler директория backend модуля системы │ ├─xxx подмодуль │ │ ├─example.go файл операции example │ │ └─... Подмодуль xxx │ └─... Другие подмодули ├─sys_model директория моделей данных модуля системы ├─sys_view директория frontend модуля системы (URL: /sys) │ ├─xxx подмодуль, соответствующий sys_handler (URL: /sys/xxx) │ │ ├─example.tpl шаблон файла для операции example │ │ ├─example2.html статический html файл (не требует привязки к операциям) │ │ ├─xxx.css файлы CSS (может быть несколько) │ │ ├─xxx.js файлы JavaScript (может быть несколько) │ │ └─... Подмодуль xxx
## Список участников
Участник | Вклад
-----------------------------------|-------------------------------------------------
[henrylee2cn](https://github.com/henrylee2cn) | Основной разработчик кода (первый автор)
[changyu72](https://github.com/changyu72) | Основной дизайнер архитектуры (второй автор)
[LeSou](https://github.com/LeSou) |
```
├─biz\_handler Директория backend модуля бизнеса
│ ├─xxx Подмодуль
│ │ ├─example.go Файл операции example
│ │ └─... Подмодуль xxx
│ └─... Другие подмодули
├─biz\_model Директория моделей данных модуля бизнеса
├─biz\_view Директория frontend модуля бизнеса (URL: /biz)
│ ├─xxx Подмодуль, соответствующий biz\_handler (URL: /biz/xxx)
│ │ ├─example.tpl Шаблон файла для операции example
│ │ ├─example2.html Статический html файл (не требует привязки к операциям)
│ │ ├─xxx.css Файлы CSS (может быть несколько)
│ │ ├─xxx.js Файлы JavaScript (может быть несколько)
│ │ └─... Подмодуль xxx
├─database По умолчанию директория хранения базовых данных
├─logger Директория вывода логов приложения
└─main.go Входной файл приложения
```markdown
## Структура проекта
├─biz_handler Директория backend модуля бизнеса
│ ├─xxx Подмодуль
│ │ ├─example.go Файл операции example
│ │ └─... Подмодуль xxx
│ └─... Другие подмодули
├─biz_model Директория моделей данных модуля бизнеса
├─biz_view Директория frontend модуля бизнеса (URL: /biz)
│ ├─xxx Подмодуль, соответствующий biz_handler (URL: /biz/xxx)
│ │ ├─example.tpl Шаблон файла для операции example
│ │ ├─example2.html Статический html файл (не требует привязки к операциям)
│ │ ├─xxx.css Файлы CSS (может быть несколько)
│ │ ├─xxx.js Файлы JavaScript (может быть несколько)
│ │ └─... Подмодуль xxx
├─database По умолчанию директория хранения базовых данных
├─logger Директория вывода логов приложения
└─main.go Входной файл приложения
```## Лицензионное соглашение
Проект Lessgo распространяется под лицензией [MIT](https://github.com/henrylee2cn/lessgo/raw/master/LICENSE), которая является дружественной для коммерческого использования.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )