日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

Python3.6+Django2.0+Xadmin2.0学生信息管理系统-2

發(fā)布時間:2023/12/20 windows 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3.6+Django2.0+Xadmin2.0学生信息管理系统-2 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、上傳圖片/文件等資源

有時候需要添加一些附件,例如,新生剛?cè)雽W(xué),大家相互之間還不熟悉,希望能通過照片來加深印象,并且方便教學(xué)管理。

首先,對demo/urls.py文件進(jìn)行改造,給urlpatterns添加static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT):

urlpatterns = [path(r'', xadmin.site.urls), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

然后在demo/settings.py文件中添加

# 指定上傳位置 LOCATION = os.path.join('/', 'Users', 'babybus') # 媒體文件根目錄 MEDIA_ROOT = os.path.join(LOCATION, 'Media')ROOT_URL = '/'MEDIA_URL = '/media/'

?

上傳圖片涉及到路徑的獲取,在models.py文件中導(dǎo)入os模塊

import os

在models.py文件的Students類中添加一個路徑獲取的方法及models.ImageField字段:

def get_photo(self, filename):return os.path.join('photo', '%s_%s_%s_%s' % (self.class_name, self.name, self.id, os.path.splitext(filename)[1])) photo = models.ImageField(verbose_name='照片', upload_to=get_photo, blank=True, null=True)

同時同步一下數(shù)據(jù)庫操作,這樣頁面就多出一個照片上傳的選項了,選擇好照片并保存:

?

2、篩選、過濾、排序

1)篩選

今年學(xué)校的錄取率爆滿,生源特別好,要在一個數(shù)據(jù)庫中找到對應(yīng)的學(xué)生,必然需要用到搜索功能。

修改adminx.py文件,在StudentsAdmin類中添加:

search_fields = ('name', )

?

要是我們想通過班級或者學(xué)科來查找這個班級或者選修這門學(xué)科的所有學(xué)生,方法還會是一樣的嗎?我們先試試:

search_fields = ('name', 'class_name', 'subjects',)

結(jié)果,報錯了:

這是怎么回事呢?原來,我們搜的“班級”和“學(xué)科”這兩個字段一個是外鍵一個是含有多對多關(guān)系,Student模型中的這兩個字段名稱并不是其實際名稱,要在字段后加“__”兩個下劃線,然后再添加外鍵或多對多關(guān)系實際的字段名:

search_fields = ('name', 'class_name__class_name', 'subjects__name',)

現(xiàn)在妥妥的了。

2)過濾:

如果只想查看學(xué)生表中的男生或者女生的信息,那就用到了過濾功能:

修改adminx.py文件,在StudentsAdmin類中添加:

list_filter = ('sex',)

?

3)排序:

如果想讓學(xué)生按某字段的順序來排序,同樣我們需要在adminx.py文件中的StudentsAdmin類中添加ordering選項:

# 順序排序
ordering = ('age', 'name', )

# 逆序排序,在前面加一個減號"-",例如按年齡倒序排列

ordering = ('-age',)

這表示同時按照年齡和姓名字段來排序。

?

二、定制網(wǎng)站信息

我們希望登錄網(wǎng)站的時候,顯示站點的名稱,修改adminx.py文件,添加LoginViewAdmin類,并注冊:

?

from xadmin.views.website import LoginViewclass LoginViewAdmin(LoginView):title = '學(xué)生信息管理系統(tǒng)'xadmin.site.register(LoginView, LoginViewAdmin)

?

?

?

?

?

還可以繼續(xù)修改,例如瀏覽器標(biāo)題和左上角的網(wǎng)頁標(biāo)題以及頁腳的版權(quán)信息:

from xadmin.views import CommAdminView class GlobalSetting(CommAdminView):# 左上角及瀏覽器標(biāo)題site_title = '學(xué)生信息管理系統(tǒng)'# 頁腳版權(quán)信息site_footer = 'Copyright ? 2018 寶寶巴士'xadmin.site.register(CommAdminView, GlobalSetting)

?

?

具體源碼內(nèi)容? 請關(guān)注學(xué)長公眾號回復(fù)“Django”

?

公眾號二維碼? ? ? ? ? ? ? ? ?

?

?左側(cè)邊欄如果以后項目越來越多了,有一個歸類會更好看些,也方便管理操作。這就需要在GlobalSetting類中添加

menu_style = 'accordion'

總結(jié)

以上是生活随笔為你收集整理的Python3.6+Django2.0+Xadmin2.0学生信息管理系统-2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。