1. 服務(wù)器
- 運(yùn)行如下命令可以開啟服務(wù)器
python manage.py runserver ip:port
(1) 可以不寫ip结缚,默認(rèn)端口為8000
(2) 這是一個純python編寫的輕量級web服務(wù)器,僅在開發(fā)階段使用
(3) 服務(wù)器成功啟動后济丘,提示如下信息
- 默認(rèn)端口是8000,可以修改端口
python manage.py runserver 8080
(1) 打開瀏覽器捶惜,輸入網(wǎng)址“127.0.0.1:8000”可以打開默認(rèn)頁面
(2) 如果修改文件不需要重啟服務(wù)器批钠,如果增刪文件需要重啟服務(wù)器
(3) 通過ctrl+c停止服務(wù)器
2. 管理操作
-
創(chuàng)建一個管理員用戶
- python manage.py createsuperuser,按提示輸入用戶名怠苔、郵箱同廉、密碼
- 啟動服務(wù)器,通過“127.0.0.1:8000/admin”訪問柑司,輸入上面創(chuàng)建的用戶名迫肖、密碼完成登錄
- 進(jìn)入管理站點,默認(rèn)可以對groups攒驰、users進(jìn)行管理
-
管理界面本地化
-
編輯settings.py文件蟆湖,設(shè)置編碼、時區(qū)
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai' -
向admin注冊test的模型
(1) 打開booktest/admin.py文件玻粪,注冊模型from django.contrib import admin
from models import TestInfo
admin.site.register(TestInfo)(2) 刷新管理頁面隅津,可以對TestInfo的數(shù)據(jù)進(jìn)行增刪改查操作
問題:如果在str方法中返回中文诬垂,在修改和添加時會報ascii的錯誤
解決:在str()方法中,將字符串末尾添加“.encode('utf-8')”
-
-
自定義管理頁面
Django提供了admin.ModelAdmin類
通過定義ModelAdmin的子類伦仍,來定義模型在Admin界面的顯示方式class QuestionAdmin(admin.ModelAdmin):
...
admin.site.register(Question, QuestionAdmin)-
列表頁屬性
(1) list_display:顯示字段结窘,可以點擊列頭進(jìn)行排序list_display = ['pk', 'ttitle', 'tpub_date']
(2) list_filter:過濾字段,過濾框會出現(xiàn)在右側(cè)
list_filter = ['ttitle']
(3) search_fields:搜索字段充蓝,搜索框會出現(xiàn)在上側(cè)
search_fields = ['ttitle']
(4) list_per_page:分頁隧枫,分頁框會出現(xiàn)在下側(cè)
list_per_page = 10
-
添加、修改頁屬性
(1) fields:屬性的先后順序fields = ['bpub_date', 'btitle']
(2) fieldsets:屬性分組
fieldsets = [
('basic',{'fields': ['btitle']}),
('more', {'fields': ['bpub_date']}),
]
-
-
關(guān)聯(lián)對象
- 對于Test1Info模型類谓苟,有兩種注冊方式
方式一:與TestInfo模型類相同
方式二:關(guān)聯(lián)注冊
按照TestInfor的注冊方式完成TestInfo的注冊
from django.contrib import admin
from models import TestInfo,Test1Infoclass Test1InfoInline(admin.StackedInline):
model = HeroInfo
extra = 2class TestInfoAdmin(admin.ModelAdmin):
inlines = [Test1InfoInline]
admin.site.register(TestInfo, TestInfoAdmin)- 可以將內(nèi)嵌的方式改為表格
class Test1InfoInline(admin.TabularInline)
- 對于Test1Info模型類谓苟,有兩種注冊方式
-
在admin注冊中使用gender代替Tgender
class Test1Admin(admin.ModelAdmin):
list_display = ['id', 'Tname', 'gender', 'Tcontent']