Django框架實現學生信息管理系統
演示視頻:Django學生信息管理系統_騰訊視頻
演示界面內容如下
總體概括
注冊流程
首先進行輸入用戶名(郵箱)、密碼以及驗證碼,輸入完之后點擊注冊按鈕。如果輸入的不正確,提示錯誤信息。
如果一切信息填寫正確無誤,調用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.gnameclass 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_compatibleAUTH_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_compatibleAUTH_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,Studentsclass StudentsInfo(admin.TabularInline):#StackeInLine顯示不同 增加頁面model = Studentsextra = 2class 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 = Trueactions_on_top = False#注冊
# admin.site.register(Students,StudentAdmin)
admin.site.register(Grades,GradesAdmin)