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)