• Django+SimpleUI


    1.安装

    pip install django-simpleui -i https://pypi.tuna.tsinghua.edu.cn/simple

    2.修改配置文件

    # 修改project的setting文件,在INSTALLED_APPS 首行引入simple应用
      INSTALLED_APPS = [
          'simpleui',
          'django.contrib.admin',
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.sessions',
          'django.contrib.messages',
          'django.contrib.staticfiles',
          ...
      ]

    3.字符集及时区设置

    # 修改project的setting文件
    LANGUAGE_CODE = 'zh-hans'
    TIME_ZONE = 'Asia/Shanghai'
    USE_TZ = False # 这里务必调整为False,否则时区设置无效

    4.设置静态资源及debug

    DEBUG=True
    
    
    STATIC_URL = '/astatic/'  # 浏览器直接访问静态文件
    STATIC_ROOT = os.path.join(BASE_DIR, 'astatic')  # 开发环境不需要(线上:python manage.py collectstatic 复制到该路径下)
    
    
    python3 manage.py  collectstatic   将静态资源克隆到项目的静态资源目录下

    5.数据库连接配置

    # 这里以postgresql数据库为例,通常建议使用mysql数据库,多数据库连接不在此处讨论
    # postgresql
    ## 安装postgresql驱动
    pip install psycopg2-binary
    #pip install psycopg2
    ## 这里需要设置postgresql的schema信息,通过options字典指定配置
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'NAME' : 'moon',
            'USER': 'postgres',
            'PASSWORD': 'postgres',
            'HOST':'127.0.0.1',
            'PORT': '5432',
            'OPTIONS': {
                        'options': '-c search_path=myapp'
                    },
        }
    }
    
    # mysql
    ## 安装mysql驱动
    pip install pymysql
    ## init文件引入pymysql 用于代理django认可的mysql驱动,同时由于django的版本问题对pymysql的版本存在要求需要增加一个版本欺骗动作
    import pymysql
    pymysql.version_info = (1, 3, 13, "final", 0)
    pymysql.install_as_MySQLdb()
    ## setting增加mysql连接串配置信息
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME':'jay_django_test',
            'HOST':'127.0.0.1',
            'USER':'root',
            'PASSWORD':'qweasd',
            'PORT':'3306',
        }
    }

    6.执行admin迁移

    python manage.py  migrate

    7.创建admin超级管理员

    python manage.py createsuperuser

    8.执行迁移

    python  manage.py  makemigrations
    
    python manage.py  migrate

    admin首页布局设置

    # 如上图所示,首页基础展示项目由三个部分组成,往往我们需要对首页进行定制重写,这里我们先把这几个展示模块先关闭
    # project的setting文件最后追加如下设置,即可关闭以上几个模块以及信息采集模块
    SIMPLEUI_HOME_INFO = False
    SIMPLEUI_HOME_QUICK = False
    SIMPLEUI_HOME_ACTION = False
    SIMPLEUI_ANALYSIS = False
    # SIMPLEUI_HOME_TITLE = '百度一下你就知道' # 【首页】按钮文案配置
    SIMPLEUI_HOME_PAGE = 'https://www.baidu.com' # 可用于嵌入其他链接,这里可以直接方便的嵌入报表链接
    SIMPLEUI_HOME_ICON = 'el el-icon-platform-eleme'

    列表页查询定制:

    # admin文件中定义展示页面,后续方便页面管理,可以独立文件,通过import方式引入进行注册
    from myapp.models import job_detail
    
    @admin.register(job_detail)
    class job_detail(admin.ModelAdmin):
        # 设置页面可以展示的字段
        list_display = ('JOB_TYPE', 'JOB_NAME','JOB_COMMENT',
                  'IN_PARA','IN_PARA_COMMENT',
                  'OUT_PARA','OUT_PARA_COMMENT')
        # 默认不配置的话,第一个字段会存在链接到记录编辑页面
        # list_display_links = None
        list_display_links = ('JOB_NAME',)
        # 设置过滤选项
        list_filter = ('JOB_TYPE', 'CREATED_TIME',)
        # 每页显示条目数 缺省值100
        list_per_page = 1
        # show all页面上的model数目,缺省200
        # list_max_show_all = 200
        # 设置可编辑字段 如果设置了可以编辑字段,页面会自动增加保存按钮
        list_editable = ('IN_PARA_COMMENT',)
        # 按日期月份筛选 该属性一般不用
        # date_hierarchy = 'CREATED_TIME'
        # 按发布日期降序排序
        ordering = ('-CREATED_TIME',)
        # 搜索条件设置
        search_fields = ('JOB_NAME',)
    
        # 表头字段显示中文名称,这里需要修改models文件,在定义字段的时候增加别名
        # eg1:JOB_NAME = models.CharField('任务名称',max_length=128)
        # eg2: name = models.CharField(max_length=30,verbose_name=u"姓名")
    
        # 字段关联展示
        ## 场景1、关联其他表的数据展示,此处外键展示不做演示,生产环境尽量减少外键使用
    
        ## 场景2、枚举信息转义展示
        ###  此处需要在model定义页面通过枚举值转义配置对应展示中文信息,参考model模块代码设置
    
        """
          这种禁用编辑链接的放法只是不让它在页面中显示,即把超链接去掉了,
          但是还是可以通过手动输入url的方式来进入编辑页面。
          不过可以配合设置fieldsets或者readonly_fieldss来达到目的
          注意:这里建议删除按钮要禁用掉,否则只有拥有view权限的人员依然可以进行删除动作,或者需要进行人员角色判断
        """
        def has_add_permission(self, request):
            # 禁用添加按钮
            return True
    
        def has_delete_permission(self, request, obj=None):
            # 禁用删除按钮
            return False

    更多可参考:Django+SimpleUI快速开发指南 - 知乎 (zhihu.com)

  • 相关阅读:
    一篇好文,以在迷茫时阅读
    [转]EeeBox 安裝 Debian 後驅動 Wireless 筆記
    SVN内外网版本库同步手册
    Android小试牛刀之1——对话框应用和SharedPeferences存储
    关于Lucene.net 2.9.2.2 中删除索引的若干问题
    提高SQL SERVER并发能力
    Entity Framework 4 Poco开发之旅 part 2
    在linux下安装dropbox
    Windows平台高性能站点手册
    利用java反射原理写了一个简单赋值和取值通用类【改】
  • 原文地址:https://www.cnblogs.com/xingxia/p/python_simpleui.html
Copyright © 2020-2023  润新知