一.基於admin后台管理系統的特點:
- 權限管理:權限管理是后台管理系統必不可少的部分,擁有權限管理,可以賦予用戶增刪改查表權限(可以分別賦予用戶對不同的表有不同的操作權限);
- 前端樣式少:后台管理主要用於管理人員管理數據庫中數據,因此樣式不是特別重要但功能全;
- 快速開發:目前很多系統在開發中,后台系統的開發工具量與前台開發工作量相差不多甚至有點比前台開發工作量還大,而Django的后台管理系統是一套全自動的管理系統(即admin)
二.admin的使用:
1.自動完成admin的相關配置:
1.1在用Pycharm創建完Django項目后,會自動注冊在setting.py的INSTALLED_APPS(Django所有的app都應該注冊在這里)中,如圖1,以及會配置相應的url,當然,你可以把url修改成你需要的名字(這里使用默認),如圖2 圖1
圖2
2.你可以直接歡快的配置和使用admin了,是不是開心的飛起啊:
2.1把你的表建好然后生成(在termina中敲入命令(python manage.py makemigrations--該命令會在migrations數據庫中表的相應腳本的py文件;python manage.py migrate--執行腳本文件生成或修改表))。
2.2使用python manage.py runserver啟動Django項目(可以指定端口,默認為8000),然后便可以在瀏覽器中訪問配置好了的url了(默認為127.0.0.1:8000/admin),如圖3
圖3
2.3顯然,得有個用戶和密碼,不急,又來python manage.py createsuperuser(輸入用戶名和密碼創建一個超級用戶),創建成功后在啟動項目便可以登錄訪問了。如圖4,為英文,Django是全球性框架,支持多語言,要想是中文的,只需在setting.py中修改語言配置(把LANGUAGE_CODE='en-us'替換成LANGUAGE_CODE=‘zh-hans’,注:Django 1.8之前為'zh-cn';時區設置以可以改為上海,便於時間的統一TIME_ZONE='UTC'替換為TIME_ZONE='Asia/Shanghai',還得把USE_TZ改成False,與本地時間統一,不然時間會取UTC的時間),如圖5。會自動生成組,是不是發現沒有自己創建的表啊(Django默認會幫你自動注冊用戶表在后台展示),還是不急,只需簡單的配置即可:
圖4
圖5
2.4在相關app下有個admin.py,只需在該文件中做相應的配置即可(以兩張表為例),如圖6,效果如圖7(當然我的User表重載了AbstractUser):
圖6
圖7
3.當然,admin的功能遠不止這些,要完成你需要的功能,只需在admin.py中進行相關配置即可:
這里例舉幾個常用的,詳細可以參考該文章:https://www.cnblogs.com/wumingxiaoyao/p/6928297.html
3.1基本設置(以User表為例,注:字段名一定要和models表中的字段名一致):
class UserProfileAdmin(admin.ModelAdmin): #顯示表中哪些字段 list_display = ['name','birthday','gender'] #list_per_page設置每頁顯示多少條記錄,默認是100條 list_per_page = 50 #ordering設置默認排序字段,負號表示降序排序 ordering = ('-add_time',) #list_editable 設置默認可編輯字段 list_editable = ['school_id', 'name'] #fk_fields 設置顯示外鍵字段 fk_fields = ('school_id',) #設置哪些字段可以點擊進入編輯界面 list_display_links = ('id', 'name')
3.2篩選器,主要用於過濾和搜索數據:
class BlogAdmin(admin.ModelAdmin): #篩選器 list_filter =('name', 'gender', 'school_id', 'add_time') #過濾器 search_fields =('name', 'school_id', 'gender') #搜索字段 date_hierarchy = 'add_time' # 詳細時間分層篩選
3.3調整頁面內容和標題:
class MyAdminSite(admin.AdminSite): site_header = '悅動樂后台管理系統' # 此處設置頁面顯示標題 site_title = '悅動樂' # 此處設置頁面頭部標題 admin_site = MyAdminSite(name='management')
4.總結:
admin雖然已經很好了,但xadmin的功能更加強大,不急, 學習從未止步......