【python畢業設計】Django框架實現學生信息管理系統

Django框架實現學生信息管理系統

演示視頻:https://v.qq.com/x/page/l3072o8woc9.html

演示界面內容如下

總體概括

註冊流程

首先進行輸入用戶名(郵箱)、密碼以及驗證碼,輸入完之後點擊註冊按鈕。如果輸入的不正確,提示錯誤信息。

如果一切信息填寫正確無誤,調用STMP模塊發送激活郵件,用戶必須要點擊接收到郵箱鏈接,進行郵件激活後才方可登陸。

即使註冊成功,沒有激活的用戶也不能登陸,用戶以get的方式直接重定向到註冊頁面。

 

註冊登錄:

用戶能在系統中進行登陸註冊和忘記密碼進行找回的功能。

個人中心:修改頭像,修改密碼,修改郵箱,可以看到我的信息。

 

日誌記錄:

記錄後臺人員的操作,方便發現BUG和查看各項調用進行時間。

導航欄:學生信息中有基本信息、年級及成績信息的模塊,能夠排序篩選等功能。

多選操作:

可以選擇多條記錄進行刪除操作,還可以在課程列表頁可以對不同課程進行排序。

數據頁碼:

可以設置各項數據在每一頁中顯示的數量多少,進行翻頁功能。

模塊列表頁:

能夠有過濾器功能,在範圍內進行查看數據。還能將數據導出爲csvxmljson等數據格式。

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”

公衆號二維碼           

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章