zoukankan      html  css  js  c++  java
  • [Go] GoAdminGroup/go-admin的安装和运行

    使用这个GoAdminGroup/go-admin框架的最简单的例子就可以把项目运行起来 , go-admin 是以扩展库的形式使用的.

    建一个main.go

    package main
    
    import (
        "io/ioutil"
        "log"
        "os"
        "os/signal"
    
        _ "github.com/GoAdminGroup/go-admin/adapter/gin"
        _ "github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql"
        _ "github.com/GoAdminGroup/themes/sword"
    
        "github.com/GoAdminGroup/go-admin/engine"
        "github.com/GoAdminGroup/go-admin/examples/datamodel"
        "github.com/GoAdminGroup/go-admin/modules/config"
        "github.com/GoAdminGroup/go-admin/modules/language"
        "github.com/GoAdminGroup/go-admin/plugins/example"
        "github.com/GoAdminGroup/go-admin/template"
        "github.com/GoAdminGroup/go-admin/template/chartjs"
        "github.com/GoAdminGroup/themes/adminlte"
        "github.com/gin-gonic/gin"
    )
    
    func main() {
        gin.SetMode(gin.ReleaseMode)
        gin.DefaultWriter = ioutil.Discard
    
        r := gin.New()
    
        e := engine.Default()
    
        cfg := config.Config{
            Env: config.EnvLocal,
            Databases: config.DatabaseList{
                "default": {
                    Host:       "127.0.0.1",
                    Port:       "3306",
                    User:       "goadmin",
                    Pwd:        "goadmin",
                    Name:       "goadmin",
                    MaxIdleCon: 50,
                    MaxOpenCon: 150,
                    Driver:     config.DriverMysql,
    
                    //Driver: config.DriverSqlite,
                    //File:   "../datamodel/admin.db",
                },
            },
            UrlPrefix: "admin",
            Store: config.Store{
                Path:   "./uploads",
                Prefix: "uploads",
            },
            Language:           language.CN,
            IndexUrl:           "/",
            Debug:              true,
            AccessAssetsLogOff: true,
            Animation: config.PageAnimation{
                Type: "fadeInUp",
            },
            ColorScheme:       adminlte.ColorschemeSkinBlack,
            BootstrapFilePath: "./../datamodel/bootstrap.go",
        }
    
        template.AddComp(chartjs.NewChart())
    
        // customize a plugin
    
        examplePlugin := example.NewExample()
    
        // load from golang.Plugin
        //
        // examplePlugin := plugins.LoadFromPlugin("../datamodel/example.so")
    
        // customize the login page
        // example: https://github.com/GoAdminGroup/demo.go-admin.cn/blob/master/main.go#L39
        //
        // template.AddComp("login", datamodel.LoginPage)
    
        // load config from json file
        //
        // e.AddConfigFromJSON("../datamodel/config.json")
    
        if err := e.AddConfig(cfg).
            AddGenerators(datamodel.Generators).
            // add generator, first parameter is the url prefix of table when visit.
            // example:
            //
            // "user" => http://localhost:9033/admin/info/user
            //
            AddGenerator("user", datamodel.GetUserTable).
            AddDisplayFilterXssJsFilter().
            AddPlugins(examplePlugin).
            Use(r); err != nil {
            panic(err)
        }
    
        r.Static("/uploads", "./uploads")
    
        // customize your pages
    
        e.HTML("GET", "/admin", datamodel.GetContent)
    
        go func() {
            _ = r.Run(":9033")
        }()
    
        quit := make(chan os.Signal, 1)
        signal.Notify(quit, os.Interrupt)
        <-quit
        log.Print("closing database connection")
        e.MysqlConnection().Close()
    }

    注意数据库用户名和密码 , 直接运行go run main.go , 在开启go module的情况下 , 所有依赖会自动安装

    访问 http://localhost:9033/admin    用户名密码:admin / admin

    建一个数据库 , 把数据库sql导进去

    # ************************************************************
    # Sequel Pro SQL dump
    # Version 4468
    #
    # http://www.sequelpro.com/
    # https://github.com/sequelpro/sequelpro
    #
    # Host: 127.0.0.1 (MySQL 5.7.19)
    # Database: godmin
    # Generation Time: 2019-09-12 04:16:47 +0000
    # ************************************************************
    
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
    
    
    # Dump of table goadmin_menu
    # ------------------------------------------------------------
    
    DROP TABLE IF EXISTS `goadmin_menu`;
    
    CREATE TABLE `goadmin_menu` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `parent_id` int(11) unsigned NOT NULL DEFAULT '0',
      `type` tinyint(4) unsigned NOT NULL DEFAULT '0',
      `order` int(11) unsigned NOT NULL DEFAULT '0',
      `title` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
      `icon` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
      `uri` varchar(3000) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
      `header` varchar(150) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `plugin_name` varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
      `uuid` varchar(150) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    LOCK TABLES `goadmin_menu` WRITE;
    /*!40000 ALTER TABLE `goadmin_menu` DISABLE KEYS */;
    
    INSERT INTO `goadmin_menu` (`id`, `parent_id`, `type`, `order`, `title`, `icon`, `uri`, `plugin_name`, `header`, `created_at`, `updated_at`)
    VALUES
        (1,0,1,2,'Admin','fa-tasks','','',NULL,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (2,1,1,2,'Users','fa-users','/info/manager','',NULL,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (3,1,1,3,'Roles','fa-user','/info/roles','',NULL,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (4,1,1,4,'Permission','fa-ban','/info/permission','',NULL,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (5,1,1,5,'Menu','fa-bars','/menu','',NULL,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (6,1,1,6,'Operation log','fa-history','/info/op','',NULL,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (7,0,1,1,'Dashboard','fa-bar-chart','/','',NULL,'2019-09-10 00:00:00','2019-09-10 00:00:00');
    
    /*!40000 ALTER TABLE `goadmin_menu` ENABLE KEYS */;
    UNLOCK TABLES;
    
    
    # Dump of table goadmin_operation_log
    # ------------------------------------------------------------
    
    DROP TABLE IF EXISTS `goadmin_operation_log`;
    
    CREATE TABLE `goadmin_operation_log` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `user_id` int(11) unsigned NOT NULL,
      `path` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
      `method` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,
      `ip` varchar(15) COLLATE utf8mb4_unicode_ci NOT NULL,
      `input` text COLLATE utf8mb4_unicode_ci NOT NULL,
      `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`),
      KEY `admin_operation_log_user_id_index` (`user_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    
    # Dump of table goadmin_site
    # ------------------------------------------------------------
    
    DROP TABLE IF EXISTS `goadmin_site`;
    
    CREATE TABLE `goadmin_site` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `key` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `value` longtext COLLATE utf8mb4_unicode_ci,
      `description` varchar(3000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `state` tinyint(3) unsigned NOT NULL DEFAULT '0',
      `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    
    # Dump of table goadmin_permissions
    # ------------------------------------------------------------
    
    DROP TABLE IF EXISTS `goadmin_permissions`;
    
    CREATE TABLE `goadmin_permissions` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
      `slug` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
      `http_method` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `http_path` text COLLATE utf8mb4_unicode_ci NOT NULL,
      `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`),
      UNIQUE KEY `admin_permissions_name_unique` (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    LOCK TABLES `goadmin_permissions` WRITE;
    /*!40000 ALTER TABLE `goadmin_permissions` DISABLE KEYS */;
    
    INSERT INTO `goadmin_permissions` (`id`, `name`, `slug`, `http_method`, `http_path`, `created_at`, `updated_at`)
    VALUES
        (1,'All permission','*','','*','2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (2,'Dashboard','dashboard','GET,PUT,POST,DELETE','/','2019-09-10 00:00:00','2019-09-10 00:00:00');
    
    /*!40000 ALTER TABLE `goadmin_permissions` ENABLE KEYS */;
    UNLOCK TABLES;
    
    
    # Dump of table goadmin_role_menu
    # ------------------------------------------------------------
    
    DROP TABLE IF EXISTS `goadmin_role_menu`;
    
    CREATE TABLE `goadmin_role_menu` (
      `role_id` int(11) unsigned NOT NULL,
      `menu_id` int(11) unsigned NOT NULL,
      `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      KEY `admin_role_menu_role_id_menu_id_index` (`role_id`,`menu_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    LOCK TABLES `goadmin_role_menu` WRITE;
    /*!40000 ALTER TABLE `goadmin_role_menu` DISABLE KEYS */;
    
    INSERT INTO `goadmin_role_menu` (`role_id`, `menu_id`, `created_at`, `updated_at`)
    VALUES
        (1,1,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (1,7,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (2,7,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (1,8,'2019-09-11 10:20:55','2019-09-11 10:20:55'),
        (2,8,'2019-09-11 10:20:55','2019-09-11 10:20:55');
    
    /*!40000 ALTER TABLE `goadmin_role_menu` ENABLE KEYS */;
    UNLOCK TABLES;
    
    
    # Dump of table goadmin_role_permissions
    # ------------------------------------------------------------
    
    DROP TABLE IF EXISTS `goadmin_role_permissions`;
    
    CREATE TABLE `goadmin_role_permissions` (
      `role_id` int(11) unsigned NOT NULL,
      `permission_id` int(11) unsigned NOT NULL,
      `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      UNIQUE KEY `admin_role_permissions` (`role_id`,`permission_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    LOCK TABLES `goadmin_role_permissions` WRITE;
    /*!40000 ALTER TABLE `goadmin_role_permissions` DISABLE KEYS */;
    
    INSERT INTO `goadmin_role_permissions` (`role_id`, `permission_id`, `created_at`, `updated_at`)
    VALUES
        (1,1,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (1,2,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (2,2,'2019-09-10 00:00:00','2019-09-10 00:00:00');
    
    /*!40000 ALTER TABLE `goadmin_role_permissions` ENABLE KEYS */;
    UNLOCK TABLES;
    
    
    # Dump of table goadmin_role_users
    # ------------------------------------------------------------
    
    DROP TABLE IF EXISTS `goadmin_role_users`;
    
    CREATE TABLE `goadmin_role_users` (
      `role_id` int(11) unsigned NOT NULL,
      `user_id` int(11) unsigned NOT NULL,
      `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      UNIQUE KEY `admin_user_roles` (`role_id`,`user_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    LOCK TABLES `goadmin_role_users` WRITE;
    /*!40000 ALTER TABLE `goadmin_role_users` DISABLE KEYS */;
    
    INSERT INTO `goadmin_role_users` (`role_id`, `user_id`, `created_at`, `updated_at`)
    VALUES
        (1,1,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (2,2,'2019-09-10 00:00:00','2019-09-10 00:00:00');
    
    /*!40000 ALTER TABLE `goadmin_role_users` ENABLE KEYS */;
    UNLOCK TABLES;
    
    
    # Dump of table goadmin_roles
    # ------------------------------------------------------------
    
    DROP TABLE IF EXISTS `goadmin_roles`;
    
    CREATE TABLE `goadmin_roles` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
      `slug` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
      `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`),
      UNIQUE KEY `admin_roles_name_unique` (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    LOCK TABLES `goadmin_roles` WRITE;
    /*!40000 ALTER TABLE `goadmin_roles` DISABLE KEYS */;
    
    INSERT INTO `goadmin_roles` (`id`, `name`, `slug`, `created_at`, `updated_at`)
    VALUES
        (1,'Administrator','administrator','2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (2,'Operator','operator','2019-09-10 00:00:00','2019-09-10 00:00:00');
    
    /*!40000 ALTER TABLE `goadmin_roles` ENABLE KEYS */;
    UNLOCK TABLES;
    
    
    # Dump of table goadmin_session
    # ------------------------------------------------------------
    
    DROP TABLE IF EXISTS `goadmin_session`;
    
    CREATE TABLE `goadmin_session` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `sid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
      `values` varchar(3000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
      `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    
    
    # Dump of table goadmin_user_permissions
    # ------------------------------------------------------------
    
    DROP TABLE IF EXISTS `goadmin_user_permissions`;
    
    CREATE TABLE `goadmin_user_permissions` (
      `user_id` int(11) unsigned NOT NULL,
      `permission_id` int(11) unsigned NOT NULL,
      `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      UNIQUE KEY `admin_user_permissions` (`user_id`,`permission_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    LOCK TABLES `goadmin_user_permissions` WRITE;
    /*!40000 ALTER TABLE `goadmin_user_permissions` DISABLE KEYS */;
    
    INSERT INTO `goadmin_user_permissions` (`user_id`, `permission_id`, `created_at`, `updated_at`)
    VALUES
        (1,1,'2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (2,2,'2019-09-10 00:00:00','2019-09-10 00:00:00');
    
    /*!40000 ALTER TABLE `goadmin_user_permissions` ENABLE KEYS */;
    UNLOCK TABLES;
    
    
    # Dump of table goadmin_users
    # ------------------------------------------------------------
    
    DROP TABLE IF EXISTS `goadmin_users`;
    
    CREATE TABLE `goadmin_users` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `username` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
      `password` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
      `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
      `avatar` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`),
      UNIQUE KEY `admin_users_username_unique` (`username`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    LOCK TABLES `goadmin_users` WRITE;
    /*!40000 ALTER TABLE `goadmin_users` DISABLE KEYS */;
    
    INSERT INTO `goadmin_users` (`id`, `username`, `password`, `name`, `avatar`, `remember_token`, `created_at`, `updated_at`)
    VALUES
        (1,'admin','$2a$10$U3F/NSaf2kaVbyXTBp7ppOn0jZFyRqXRnYXB.AMioCjXl3Ciaj4oy','admin','','tlNcBVK9AvfYH7WEnwB1RKvocJu8FfRy4um3DJtwdHuJy0dwFsLOgAc0xUfh','2019-09-10 00:00:00','2019-09-10 00:00:00'),
        (2,'operator','$2a$10$rVqkOzHjN2MdlEprRflb1eGP0oZXuSrbJLOmJagFsCd81YZm0bsh.','Operator','',NULL,'2019-09-10 00:00:00','2019-09-10 00:00:00');
    
    /*!40000 ALTER TABLE `goadmin_users` ENABLE KEYS */;
    UNLOCK TABLES;
    
    
    
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
    /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
  • 相关阅读:
    线程池
    单例设计模式
    String,StringBuffer,StringBuilder
    马踏棋盘算法
    最短路径问题 (迪杰斯特拉算法,弗洛伊德算法)
    最小生成树 修路问题(普里姆算法,克鲁斯卡尔算法)
    贪心算法 求解集合覆盖问题
    Stream 数组转换
    unittest与pytest对比
    条件编译
  • 原文地址:https://www.cnblogs.com/taoshihan/p/13749252.html
Copyright © 2011-2022 走看看