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)

 

上一篇:Django SimpleUI 自定义


下一篇:Docker 以 Host 形式运行 AdGuard Home