1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/andeyalee-lessgo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Lessgo Web Framework GoDoc GitHub release

Lessgo Favicon

Обзор

Lessgo — это простой, надёжный и эффективный веб-фреймворк, написанный на Go. Проект организован таким образом, чтобы обеспечивать разделение клиентской и серверной части, а также систем и бизнес-логики. Он идеально совместим с различными моделями разработки, такими как MVC и MVVC, что делает его особенно подходящим для создания корпоративных приложений и API-интерфейсов. Ключевой особенностью является возможность динамического изменения маршрутов во время выполнения программы.

Официальная группа QQ: Go-Web Programming 42730308 Группа Go-Web Programming

Применимость

  • Веб-сайты
  • Веб-приложения
  • Приложения RESTful API
  • Корпоративные приложения

Версия

  • V0.7.0
  • Дата выпуска: 2016.06.01## Новые возможности
  • Простота использования, надёжность и высокая производительность (основана на реальной реализации echo)
  • Совместимость со многими популярными системами, такими как MVC, MVVM, RESTful и другие
  • Реальные маршруты httprouter с мощным слоем виртуальных маршрутов, обеспечивающим отличную производительность и возможность динамической конфигурации в исходном коде или административной панели
  • Поддержка множества различных баз данных, позволяющая использовать xorm или gorm (или даже оба одновременно)
  • Оптимальная организация проекта, удовлетворяющая потребности сложных корпоративных приложений
  • Интегрированные системные логи (системные и базы данных)
  • Управление сессиями (оптимизация пакета session из beego)
  • Мощный движок шаблонизации (pongo2)
  • Поддержка динамически обновляемых страниц тестирования API (Swagger 2.0)
  • Автоматическое заполнение значений по умолчанию в файлах конфигурации и сортировка по алфавитному порядку
  • Поддержка горячего компиляционного обновления
  • Поддержка горячего обновления
  • Также включены различные полезные инструменты, такие как HOTP, TOTP, UUID и генераторы штрих-кодовLessgo Сервер Lessgo Административная панель

Установка фреймворка

go get -u github.com/henrylee2cn/lessgo
go get -u github.com/henrylee2cn/less
go get -u github.com/henrylee2cn/lessgoext/...

Структура фреймворка

  • Основной фреймворк: lessgo
  • Инструмент для развёртки фреймворка: less
  • Расширения фреймворка: lessgoext
  • Пример проекта: demo
  • Документация фреймворка: document

Пример кода

  • main.go
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),
    )
}

Системная документация

Проектная архитектура

Lessgo Web Framework


─Проект проектная директория ├─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 )

Вы можете оставить комментарий после Вход в систему

Введение

Lessgo — это простой, стабильный, эффективный и гибкий веб-фреймворк для разработки на Golang. Он поддерживает динамические маршруты, автоматизацию документации API-тестов, горячую компиляцию и горячее обновление. Позволяет разделить фронтэнд и бэкэнд, систему и бизнес-логику. Прекрасно сочетается с различными моделями разработки, такими как MVC... Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/andeyalee-lessgo.git
git@api.gitlife.ru:oschina-mirror/andeyalee-lessgo.git
oschina-mirror
andeyalee-lessgo
andeyalee-lessgo
master