Django框架實現學生信息管理系統
演示視頻:https://v.qq.com/x/page/l3072o8woc9.html
演示界面內容如下
總體概括
註冊流程
首先進行輸入用戶名(郵箱)、密碼以及驗證碼,輸入完之後點擊註冊按鈕。如果輸入的不正確,提示錯誤信息。
如果一切信息填寫正確無誤,調用STMP模塊發送激活郵件,用戶必須要點擊接收到郵箱鏈接,進行郵件激活後才方可登陸。
即使註冊成功,沒有激活的用戶也不能登陸,用戶以get的方式直接重定向到註冊頁面。
註冊登錄:
用戶能在系統中進行登陸註冊和忘記密碼進行找回的功能。
個人中心:修改頭像,修改密碼,修改郵箱,可以看到我的信息。
日誌記錄:
記錄後臺人員的操作,方便發現BUG和查看各項調用進行時間。
導航欄:學生信息中有基本信息、年級及成績信息的模塊,能夠排序篩選等功能。
多選操作:
可以選擇多條記錄進行刪除操作,還可以在課程列表頁可以對不同課程進行排序。
數據頁碼:
可以設置各項數據在每一頁中顯示的數量多少,進行翻頁功能。
模塊列表頁:
能夠有過濾器功能,在範圍內進行查看數據。還能將數據導出爲csv,xml,json等數據格式。
model.py
from django.db import models
# Create your models here.
class Grades(models.Model):
gname = models.CharField(max_length=20)
gdate = models.DateTimeField()
gteacher = models.CharField(max_length=20)
ggirlnum = models.IntegerField()
gboynum = models.IntegerField()
isDelete = models.BooleanField(default=False)
def __str__(self):
return self.gname
class Students(models.Model):
sname = models.CharField(max_length=20)
sgender = models.BooleanField(default=True)
sminzu = models.CharField(max_length=20)
sbir = models.IntegerField()
scontend = models.CharField(max_length=20)
shome = models.CharField(max_length=20)
sidcard = models.CharField(max_length=20)
sschnum = models.IntegerField()
stel = models.CharField(max_length=20)
steacher = models.CharField(max_length=20)
isDelete = models.BooleanField(default=False)
# 關聯外鍵
sgrade = models.ForeignKey("Grades", on_delete=models.CASCADE)
def __str__(self):
return self.sname
# class Score(models.Model):
# math = models.IntegerField()
# 關聯外鍵
sgrade = models.ForeignKey("Grades", on_delete=models.CASCADE)
from django.db import models
from django.contrib.auth.models import Group
from django.conf import settings
from django.utils.encoding import python_2_unicode_compatible
AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
SERVER_STATUS = (
(0, u"Normal"),
(1, u"Down"),
(2, u"No Connect"),
(3, u"Error"),
)
SERVICE_TYPES = (
('moniter', u"Moniter"),
('lvs', u"LVS"),
('db', u"Database"),
('analysis', u"Analysis"),
('admin', u"Admin"),
('storge', u"Storge"),
('web', u"WEB"),
('email', u"Email"),
('mix', u"Mix"),
)
@python_2_unicode_compatible
class AccessRecord(models.Model):
date = models.DateField()
user_count = models.IntegerField()
view_count = models.IntegerField()
class Meta:
verbose_name = u"Access Record"
verbose_name_plural = verbose_name
# def __str__(self):
# return "%s Access Record" % self.date.strftime('%Y-%m-%d')
from django.db import models
from django.contrib.auth.models import Group
from django.conf import settings
from django.utils.encoding import python_2_unicode_compatible
AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
SERVER_STATUS = (
(0, u"Normal"),
(1, u"Down"),
(2, u"No Connect"),
(3, u"Error"),
)
SERVICE_TYPES = (
('moniter', u"Moniter"),
('lvs', u"LVS"),
('db', u"Database"),
('analysis', u"Analysis"),
('admin', u"Admin"),
('storge', u"Storge"),
('web', u"WEB"),
('email', u"Email"),
('mix', u"Mix"),
)
@python_2_unicode_compatible
class AccessRecord(models.Model):
date = models.DateField()
user_count = models.IntegerField()
view_count = models.IntegerField()
class Meta:
verbose_name = u"Access Record"
verbose_name_plural = verbose_name
# def __str__(self):
# return "%s Access Record" % self.date.strftime('%Y-%m-%d')
admin.py
from django.contrib import admin
# Register your models here.
from .models import Grades,Students
class StudentsInfo(admin.TabularInline):#StackeInLine顯示不同 增加頁面
model = Students
extra = 2
class GradesAdmin(admin.ModelAdmin):
inlines = [StudentsInfo]
#列表頁屬性
list_display = ['id','gname','gdate','ggirlnum','gboynum','gteacher','isDelete',]
list_filter = ['gteacher']
search_fields = ['gname']
list_per_page = 5
#
# #添加修改頁屬性
# fields = ['ganame','gdate','ggirlnum','isDelete','gboynum']
# fieldsets = [('num',{"fields":['ggirlnum','gboynum']}),('base',{"fields":['gname','gdate','isDelete','home','shome','sbir','sidcard','sschnum','stel']})]
@admin.register(Students)
class StudentAdmin(admin.ModelAdmin):
def gender(self):
if self.sgender:
return "女"
else:
return "男"
#設置頁面名稱
gender.short_description = "性別"
list_display = ['pk','sname',gender,'scontend','sgrade','isDelete','shome','sbir','sidcard','sschnum','stel']
#每頁顯示人數
list_per_page = 10
#按照班級篩選
list_filter = ['sgrade']
#查找
search_fields = ['sname']
#執行動作的位置
actions_on_bottom = True
actions_on_top = False
#註冊
# admin.site.register(Students,StudentAdmin)
admin.site.register(Grades,GradesAdmin)
具體源碼內容 請關注學長公衆號回覆“Django”
公衆號二維碼