国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[Python+Django]Web學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)及系統(tǒng)實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了[Python+Django]Web學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)及系統(tǒng)實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

本文我們完成數(shù)據(jù)的設(shè)計(jì),并通過(guò)Django框架完成數(shù)據(jù)庫(kù)構(gòu)建同時(shí)利用Django框架模式實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的功能。

簡(jiǎn)單的包裝下畢設(shè)應(yīng)該沒(méi)問(wèn)題了。

Python,Mysql,Pycharm的安裝本文就不做特別介紹了,有需要的同學(xué)請(qǐng)參考如下博文。

Python + Django4 搭建個(gè)人博客(二):準(zhǔn)備開(kāi)發(fā)環(huán)境_李威威wiwi的博客-CSDN博客_django 4 用什么idehttps://blog.csdn.net/agelee/article/details/126406215

?最終實(shí)現(xiàn)系統(tǒng)功能結(jié)構(gòu)如下

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

?源碼下載如下:

[Python+Django]Web學(xué)生信息管理系統(tǒng)畢業(yè)設(shè)計(jì)之?dāng)?shù)據(jù)庫(kù)及系統(tǒng)實(shí)現(xiàn)源碼-Python文檔類資源-CSDN文庫(kù)https://download.csdn.net/download/agelee/87384620

系統(tǒng)代碼文件結(jié)構(gòu):

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

?各模塊系統(tǒng)運(yùn)行演示:

學(xué)院管理

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

專業(yè)管理:

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)?django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

?班級(jí)管理:

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

學(xué)生管理

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

?教師管理

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

?成績(jī)管理:

?數(shù)據(jù)庫(kù)設(shè)計(jì):

本系統(tǒng)根據(jù)我們的系統(tǒng)分析設(shè)計(jì)如下7個(gè)數(shù)據(jù)表。

?django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

?django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

?django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

?系統(tǒng)代碼實(shí)現(xiàn)

大致理清了我們需要實(shí)現(xiàn)的功能模塊之后,我們開(kāi)始擼代碼

1 、開(kāi)發(fā)環(huán)境搭建及技術(shù)選型

服務(wù)端:Python 3.9

Web框架:Django 4.1.3

數(shù)據(jù)庫(kù):MySQL mysql-8.0.13-winx64

開(kāi)發(fā)工具IDE:Pycharm

前端框架:Bootstrap 4

2、Django項(xiàng)目創(chuàng)建及數(shù)據(jù)庫(kù)連接配置

1.在任意盤符文件夾下新建一個(gè)空白Pycharm項(xiàng)目文件夾比如:PycharmProjects

2.打開(kāi)Pycharm,進(jìn)入空白文件夾:PycharmProjects

3.通過(guò)Pycharm 的Windows 命令行輸入界面輸入創(chuàng)建Django項(xiàng)目的命令,創(chuàng)建一個(gè)新的項(xiàng)目:DjangoSms

django-admin startproject DjangoSms

3、 數(shù)據(jù)庫(kù)創(chuàng)建和連接配置
Django 對(duì)各種數(shù)據(jù)庫(kù)提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。

Django 為這些數(shù)據(jù)庫(kù)提供了統(tǒng)一的調(diào)用API。

我們可以根據(jù)自己業(yè)務(wù)需求選擇不同的數(shù)據(jù)庫(kù)。

MySQL 是 Web 應(yīng)用中最常用的數(shù)據(jù)庫(kù)。

本文采用MySQL。

  • ?數(shù)據(jù)庫(kù)創(chuàng)建

Django只能操作到數(shù)據(jù)表級(jí)別,不能操作到數(shù)據(jù)庫(kù)級(jí)別,所以需要手工創(chuàng)建一個(gè)數(shù)據(jù)庫(kù):djangosms

我們可以通過(guò)命令行創(chuàng)建一個(gè)數(shù)據(jù)庫(kù):

1.進(jìn)入mysql安裝文件夾的bin 子文件夾目錄:

比如:D:\Program Files\mysql-8.0.13-winx64\bin

2.連接數(shù)據(jù)庫(kù):

mysql -u root -p Enter password:******

3.連接登錄成功后通過(guò)命令創(chuàng)建一個(gè)數(shù)據(jù)庫(kù):djangosms

CREATE DATABASE IF NOT EXISTS djangosms DEFAULT CHARSET utf8;

或者通過(guò)SQLlog工具創(chuàng)建一個(gè)數(shù)據(jù)庫(kù): djangosms

  • Django數(shù)據(jù)庫(kù)連接配置

Django使用MySQL需要mysql 驅(qū)動(dòng),如果你沒(méi)安裝 mysql 驅(qū)動(dòng),可以執(zhí)行以下命令安裝:

pip install pymysql

安裝好之后, 進(jìn)入DjangoSms 項(xiàng)目下的DjangoSms 文件夾,打開(kāi)setting.py 文件,找到DATABASES配置項(xiàng),修改DATABSES配置項(xiàng)為如下內(nèi)容:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',    # 數(shù)據(jù)庫(kù)引擎
        'NAME': 'djangosms', # 數(shù)據(jù)庫(kù)名稱
        'HOST': '127.0.0.1', # 數(shù)據(jù)庫(kù)地址,本機(jī) ip 地址 127.0.0.1
        'PORT': 3306, # 端口
        'USER': 'root',  # 數(shù)據(jù)庫(kù)用戶名
        'PASSWORD': '123456', # 數(shù)據(jù)庫(kù)密碼
    }
}

然后使用 pymysql 模塊連接 mysql 數(shù)據(jù)庫(kù):

在與 settings.py 同級(jí)目錄下的 __init__.py 中引入模塊和進(jìn)行配置:

import pymysql

pymysql.install_as_MySQLdb()

至此,我們創(chuàng)建了一個(gè)Django項(xiàng)目DjangoSms用于我們后續(xù)系統(tǒng)開(kāi)發(fā)的程序編寫。

同時(shí)為此項(xiàng)目創(chuàng)建了一個(gè)MySQL數(shù)據(jù)庫(kù):djangosms用于我們程序開(kāi)發(fā)過(guò)程中的數(shù)據(jù)存放和處理。

3 功能模塊詳細(xì)開(kāi)發(fā)

一個(gè)Django項(xiàng)目框架搭建起來(lái)后,我們所有對(duì)系統(tǒng)的前后臺(tái)所有的程序開(kāi)發(fā)都可以在這個(gè)項(xiàng)目中進(jìn)行了,一個(gè)典型的Django項(xiàng)目模塊功能的開(kāi)發(fā)包括如下幾個(gè)步驟:

  • 創(chuàng)建,注冊(cè)app
  • 定義模型
  • 定義視圖函數(shù)
  • 配置訪問(wèn)路由URL
  • 靜態(tài)資源準(zhǔn)備及配置
  • 前端模板開(kāi)發(fā)
  • 測(cè)試及運(yùn)行

?1.創(chuàng)建App

在Django中的一個(gè)app代表一個(gè)功能模塊,

本來(lái)一般實(shí)際開(kāi)發(fā)中方便管理一個(gè)功能模塊需要單獨(dú)新建一個(gè)app,我們?yōu)榱丝焖匍_(kāi)發(fā),所有的功能和模型都在一個(gè)app中進(jìn)行管理。

在命令行中輸入python manage.py startapp app01指令,創(chuàng)建名為app01的app:

python manage.py startapp app01

在 DjangoSms文件夾目錄下的settings.py 中找到INSTALLED_APPS配置項(xiàng),將新創(chuàng)建的app01添加到項(xiàng)目的app列表,如下:

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01'  #添加此項(xiàng)
]

2.定義模型

Django通過(guò)模型將程序中的字段和數(shù)據(jù)庫(kù)對(duì)應(yīng)起來(lái),同時(shí)在程序和數(shù)據(jù)中間來(lái)傳遞數(shù)據(jù)。

Django 模型使用自帶的 ORM。

我們之前創(chuàng)建了一個(gè)空白的數(shù)據(jù)庫(kù)djangoesms,這一步我們通過(guò)Django的模型來(lái)完成數(shù)據(jù)庫(kù)表的創(chuàng)建.

因?yàn)镈jango對(duì)模型和目標(biāo)數(shù)據(jù)庫(kù)之間有自身的映射規(guī)則,如果自己在數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表,可能不一定符合Django的建表規(guī)則,從而導(dǎo)致模型和目標(biāo)數(shù)據(jù)庫(kù)無(wú)法建立通信聯(lián)系。

所以最好我們?cè)贒jango項(xiàng)目中還是通過(guò)Django模型來(lái)創(chuàng)建對(duì)應(yīng)數(shù)據(jù)庫(kù)表

一個(gè)表對(duì)應(yīng)一個(gè)模型,本步驟按照我們前面數(shù)據(jù)庫(kù)設(shè)計(jì)需要設(shè)計(jì)7個(gè)模型:

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

?打開(kāi)DjangoSms/app01/models.py,建立7個(gè)模型:

from django.db import models

# Create your models here.

# 學(xué)院表
class Academy(models.Model):
    id = models.AutoField('序號(hào)',primary_key=True)
    name = models.CharField('學(xué)院',max_length=20)

    # 修改顯示的表的名字
    class Meta:
        verbose_name = '學(xué)院'
        verbose_name_plural = '學(xué)院'

    def __str__(self):
        return self.name


# 專業(yè)表
class Major(models.Model):
    id = models.AutoField('序號(hào)',primary_key=True)
    academy = models.ForeignKey(to=Academy,on_delete=models.CASCADE,verbose_name='學(xué)院')
    name = models.CharField('專業(yè)',max_length=30)

    # 修改顯示的表的名字
    class Meta:
        verbose_name = '專業(yè)'
        verbose_name_plural = '專業(yè)'
    def __str__(self):
        return self.name

# 課程表
class Course(models.Model):
    id = models.AutoField('序號(hào)',primary_key=True)
    name = models.CharField('課程名稱',max_length=30)
    subject = models.CharField('學(xué)科',max_length=30)

    class Meta:
        verbose_name = '課程'
        verbose_name_plural = '課程'

    def __str__(self):
        return self.name

# 班級(jí)表
class Classx(models.Model):
    id = models.AutoField('序號(hào)',primary_key=True)
    major = models.ForeignKey(Major,on_delete=models.CASCADE,verbose_name='專業(yè)')
    name = models.CharField('名稱',max_length=30)

    # 修改顯示的表的名字
    class Meta:
        verbose_name = '專業(yè)'
        verbose_name_plural = '專業(yè)'
    def __str__(self):
        return self.name

# 學(xué)生表
class Student(models.Model):
    id = models.AutoField('序號(hào)',primary_key=True)
    sid = models.CharField('學(xué)號(hào)',max_length=12)
    name = models.CharField('姓名',max_length=20,unique=True)
    sex = models.BooleanField('性別',choices=((0,'女'),(1,'男')))
    age = models.IntegerField('年齡')
    sclass = models.ForeignKey(Classx,on_delete=models.CASCADE,verbose_name='班級(jí)')
    email = models.EmailField('郵箱',default=None)    # 默認(rèn)為空   唯一值
    pwd = models.CharField('密碼',max_length=20)

    # 修改顯示的表的名字
    class Meta:
        verbose_name = '學(xué)生'
        verbose_name_plural = '學(xué)生信息表'

    def __str__(self):
        return self.name

# 教師表
class Teacher(models.Model):
    tid = models.AutoField('教師編號(hào)',primary_key=True)
    name = models.CharField('姓名',max_length=20,unique=True)
    sex = models.BooleanField('性別',choices=((0,'女'),(1,'男')))
    age = models.IntegerField('年齡')
    academy = models.ForeignKey(Academy,on_delete=models.CASCADE,verbose_name='學(xué)院')
    email = models.EmailField('郵箱',default=None)    # 默認(rèn)為空   唯一值
    phone = models.CharField('聯(lián)系方式',max_length=20,default=None)
    pwd = models.CharField('密碼',max_length=20)

    # 修改顯示的表的名字
    class Meta:
        verbose_name = '教師'
        verbose_name_plural = '教師信息表'

    def __str__(self):
        return self.name


# # 學(xué)生成績(jī)表
class Record(models.Model):
    id = models.AutoField('序號(hào)',primary_key=True)
    sid = models.ForeignKey(Student,on_delete=models.CASCADE,verbose_name='學(xué)號(hào)')
    tid = models.ForeignKey(Teacher,on_delete=models.CASCADE,verbose_name='任課老師')
    course = models.ForeignKey(Course,on_delete=models.CASCADE,verbose_name='考試科目')
    grade = models.FloatField('成績(jī)')
    rtime = models.DateField('考試時(shí)間',blank=True,null=True)
    year = models.CharField('學(xué)年',max_length=4)
    term = models.CharField('學(xué)期',max_length=4,choices=(('上','上'),('下','下')))

    class Meta:
        verbose_name = '學(xué)生成績(jī)'
        verbose_name_plural = '學(xué)生成績(jī)'

    def __str__(self):
        return self.term

3.定義視圖函數(shù)

Django 中視圖的概念是「一類具有相同功能和模板的網(wǎng)頁(yè)的集合」。

比如,在一個(gè)學(xué)生信息系統(tǒng)中,我們可能需要如下幾個(gè)視圖:

  • 登錄:輸入用戶和密碼,根據(jù)校驗(yàn)結(jié)果進(jìn)行登錄處理。
  • 學(xué)院信息的增、刪、改、查。
  • 學(xué)生成績(jī)的增、刪、改、查。

?這些需求都靠視圖(View)來(lái)完成。

每一個(gè)視圖表現(xiàn)為一個(gè)簡(jiǎn)單的Python函數(shù),它需要要做的只有兩件事:返回一個(gè)包含被請(qǐng)求頁(yè)面內(nèi)容的 HttpResponse對(duì)象,或者拋出一個(gè)異常,比如 Http404 。

視圖函數(shù)中的request與網(wǎng)頁(yè)發(fā)來(lái)的請(qǐng)求有關(guān),里面包含get或post的內(nèi)容、用戶瀏覽器、系統(tǒng)等信息。

?比如我們先創(chuàng)建幾個(gè)視圖分別實(shí)現(xiàn)對(duì)學(xué)院的增刪改查。

在文件:DjangoSms/app01/views.py 建立視圖函數(shù)如下:

from django.shortcuts import render, redirect
from app01 import models

# Create your views here.
# 學(xué)院管理
def academy_list(request):
    academy = models.Academy.objects.all()
    return render(request, 'academy_list.html', {'academy_list': academy})

def edit_academy(request):
    if request.method == 'POST':
        edit_id = request.GET.get('id')
        edit_obj = models.Academy.objects.get(id=edit_id)
        new_name = request.POST.get('edit_name')
        edit_obj.name = new_name
        edit_obj.save()
        return redirect('/academy_list/')

    edit_id = request.GET.get('id')
    edit_obj = models.Academy.objects.get(id=edit_id)
    return render(request, 'academy_edit.html', {'academy': edit_obj})


def add_academy(request):
    if request.method == 'POST':
        new_academy_name = request.POST.get('name')
        models.Academy.objects.create(name=new_academy_name)
        return redirect('/academy_list/')
    return render(request, 'academy_add.html')


def drop_academy(request):
    drop_id = request.GET.get('id')
    drop_obj = models.Academy.objects.get(id=drop_id)
    drop_obj.delete()
    return redirect('/academy_list/')

?4.配置訪問(wèn)路由URL

有了視圖后,我們需要將視圖函數(shù)和Web網(wǎng)頁(yè)鏈接對(duì)應(yīng)起來(lái)。

url可以理解為訪問(wèn)網(wǎng)站時(shí)輸入的網(wǎng)址鏈接,配置好url后Django才知道怎樣定位app。

打開(kāi)DjangoSms/urls.py,輸入如下代碼:

from django.contrib import admin
from django.urls import path , re_path

from app01 import views
urlpatterns = [
    re_path(r'^$', views.academy_list),
    re_path(r'^edit_academy', views.edit_academy),
    re_path(r'^academy_list', views.academy_list),
    re_path(r'^add_academy', views.add_academy),
    re_path(r'^drop_academy', views.drop_academy),
]

通過(guò)配置如上URL,Django 將會(huì)根據(jù)用戶請(qǐng)求的 URL 來(lái)選擇使用哪個(gè)視圖。

?5.靜態(tài)資源準(zhǔn)備及配置

本系統(tǒng)前后端不分離,前端框架選用當(dāng)前比較受歡迎的Bootstrap,為了滿足畢設(shè)的個(gè)性化,顯示同時(shí)兼顧開(kāi)發(fā)效率,本文采用了一套做了部分定制基于Bootstrap的主題模板。

在項(xiàng)目根目錄下新建一個(gè)文件夾static用于存放前端模板靜態(tài)資源。

把我們準(zhǔn)備好的文件復(fù)制到static文件夾

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

?準(zhǔn)備好靜態(tài)資源后,我們還需要在Django中指定靜態(tài)文件的存放位置,這樣才能夠在模板中正確引用它們。

在DjangoSms/settings.py 中進(jìn)行如下配置:

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),  # 添加此項(xiàng)
]

6.模板開(kāi)發(fā)創(chuàng)建

?在創(chuàng)建模板之前,我們先在根目錄下新建一個(gè)文件夾templates用于存放我們的所有的模板文件。

模板位置也同樣需要進(jìn)行配置指定模板的存放位置,在DjangoSms/settings.py 中進(jìn)行如下配置:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],  # 添加此項(xiàng)
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

接著我們?cè)谀0逦募行陆ㄈ齻€(gè)文件:

  • base.html:是整個(gè)項(xiàng)目的模板基礎(chǔ),所有的網(wǎng)頁(yè)都從它繼承;
  • header.html:是網(wǎng)頁(yè)頂部的導(dǎo)航欄;
  • footer.html:是網(wǎng)頁(yè)底部的注腳。

上述三個(gè)文件是網(wǎng)站頁(yè)面的通用組件模塊,基本上每個(gè)頁(yè)面都不會(huì)變,所以我們把他們獨(dú)立出來(lái)。

我們編寫Django后續(xù)的頁(yè)面模板時(shí)可以直接繼承對(duì)應(yīng)的通用模板組件。

分別編寫三個(gè)靜態(tài)HTML文件代碼如下:

?templates/base.html:

<!--    載入靜態(tài)文件-->
{% load static %}
<!-- 網(wǎng)站主語(yǔ)言 -->
<html lang="zh-cn">
<head>
  <meta charset="UTF-8">
  <title>{% block title %}{% endblock %}</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <!-- jQuery UI -->
  <link  rel="stylesheet" media="screen">
  <!-- Bootstrap -->
  <link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet">
  <!-- styles -->
  <link href="/static/css/styles.css" rel="stylesheet">

  <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
  <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
  <![endif]-->
</head>

<body>
<!-- 引入導(dǎo)航欄 -->
{% include 'header.html' %}
<!-- 預(yù)留具體頁(yè)面的位置 -->
{% block content %}{% endblock content %}
<!-- 引入注腳 -->
{% include 'footer.html' %}
<!-- bootstrap.js 依賴 jquery.js 和popper.js,因此在這里引入 -->
<!--<script src="{% static 'jquery/jquery-3.6.0.js' %}"></script>-->
<!--<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1-lts/dist/umd/popper.min.js"></script>-->
<!--
    popper.js 采用 cdn 遠(yuǎn)程引入,意思是你不需要把它下載到本地。
    在實(shí)際的開(kāi)發(fā)中推薦靜態(tài)文件盡量都使用 cdn 的形式。
    教程采用本地引入是為了讓讀者了解靜態(tài)文件本地部署的流程。
-->

<link href="/static/vendors/datatables/dataTables.bootstrap.css" rel="stylesheet" media="screen">

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://code.jquery.com/jquery.js"></script>
<!-- jQuery UI -->
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="/static/bootstrap/js/bootstrap.min.js"></script>

<script src="/static/vendors/datatables/js/jquery.dataTables.min.js"></script>

<script src="/static/vendors/datatables/dataTables.bootstrap.js"></script>

<script src="/static/js/custom.js"></script>
<script src="/static/js/tables.js"></script>

     <!-- bootstrap-datetimepicker -->
<link href="/static/vendors/bootstrap-datetimepicker/datetimepicker.css" rel="stylesheet">
<script src="/static/vendors/bootstrap-datetimepicker/bootstrap-datetimepicker.js"></script>


</body>

</html>

templates/header.html:

<div class="header">
  <div class="container">
    <div class="row">
      <div class="col-md-5">
        <!-- Logo -->
        <div class="logo">
          <h1><a href="/">學(xué)生信息管理系統(tǒng)</a></h1>
        </div>
      </div>
      <div class="col-md-5">
        <div class="row">
          <div class="col-lg-12">
            <div class="input-group form">
              <input type="text" class="form-control" placeholder="Search...">
              <span class="input-group-btn">
                <button class="btn btn-primary" type="button">搜索</button>
              </span>
            </div>
          </div>
        </div>
      </div>
      <div class="col-md-2">
        <div class="navbar navbar-inverse" role="banner">
          <nav class="collapse navbar-collapse bs-navbar-collapse navbar-right" role="navigation">
            <ul class="nav navbar-nav">
              <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">個(gè)人中心<b class="caret"></b></a>
                <ul class="dropdown-menu animated fadeInUp">
                  <li><a href="/login">Logout</a></li>
                </ul>
              </li>
            </ul>
          </nav>
        </div>
      </div>
    </div>
  </div>
</div>

templates/footer.html:

{% load static %}
<!-- Footer -->
<div>
  <br><br><br>
</div>
<footer class="py-3 bg-dark fixed-bottom">
  <div class="container">
    <p class="m-0 text-center text-white">Copyright &copy; DjangoSms 2022</p>
  </div>
</footer>

接下來(lái)我們就來(lái)實(shí)現(xiàn)詳細(xì)各個(gè)視圖函數(shù)對(duì)應(yīng)的網(wǎng)頁(yè)模板了

學(xué)院添加:academy_add.html

<!-- extends表明此頁(yè)面繼承自 base.html 文件 -->
{% extends "base.html" %} {% load static %}
<!-- 寫入 base.html 中定義的 title -->
{% block title %} 學(xué)院列表 {% endblock title %}
<!-- 寫入 base.html 中定義的 content -->
{% block content %}
<div class="page-content">
  <div class="row">
    <div class="col-md-2">
      <div class="sidebar content-box" style="display: block;">
        <ul class="nav">
          <!-- Main menu -->
          <li class="current"><a href="/academy_list"><i class="glyphicon glyphicon-home"></i>學(xué)院管理</a></li>
          <li ><a href="/major_list"><i class="glyphicon glyphicon-list"></i> 專業(yè)管理</a></li>
          <li><a href="/class_list"><i class="glyphicon glyphicon-tag"></i> 班級(jí)管理</a></li>
          <li><a href="/course_list"><i class="glyphicon glyphicon-file"></i>課程管理</a></li>
          <li><a href="/student_list"><i class="glyphicon glyphicon-user"></i>學(xué)生管理</a></li>
          <li><a href="/teacher_list"><i class="glyphicon glyphicon-pencil"></i>教師管理</a></li>
          <li><a href="/record_list"><i class="glyphicon glyphicon-th-list"></i>學(xué)生成績(jī)管理</a></li>
          <li class="submenu">
            <a href="#">
              <i class="glyphicon glyphicon-cog"></i> 系統(tǒng)設(shè)置
              <span class="caret pull-right"></span>
            </a>
            <!-- Sub menu -->
            <ul>
              <li><a href="/login">Login</a></li>
              <li><a href="/signup">Signup</a></li>
            </ul>
          </li>
        </ul>
      </div>
    </div>
    <div class="col-md-10">
      <div class="content-box-large">
        <div class="panel-heading">
          <div class="panel-title">新增學(xué)院</div>
        </div>
        <div class="panel-body">
          <form class="form-horizontal" role="form" action="/add_academy/" method="post">
            {% csrf_token %}
            <div class="form-group">
              <label for="input1" class="col-sm-2 control-label">學(xué)院名稱</label>
              <div class="col-sm-10">
                <input class="form-control" id="input1" placeholder="學(xué)院名稱" name="name">
              </div>
            </div>
            <div class="form-group">
              <div class="col-sm-offset-2 col-sm-10">
                <button type="submit" class="btn btn-primary">保存</button>
                <button type="submit" formmethod="get" formaction="/academy_list" class="btn btn-default">返回</button>
              </div>
            </div>
          </form>
        </div>
      </div>
    </div>
  </div>
</div>
{% endblock content %}

?學(xué)院編輯:academy_edit.html

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

<!-- extends表明此頁(yè)面繼承自 base.html 文件 -->
{% extends "base.html" %} {% load static %}
<!-- 寫入 base.html 中定義的 title -->
{% block title %} 學(xué)院列表 {% endblock title %}
<!-- 寫入 base.html 中定義的 content -->
{% block content %}
<div class="page-content">
  <div class="row">
    <div class="col-md-2">
      <div class="sidebar content-box" style="display: block;">
        <ul class="nav">
          <!-- Main menu -->
          <li class="current"><a href="/academy_list"><i class="glyphicon glyphicon-home"></i>學(xué)院管理</a></li>
          <li ><a href="/major_list"><i class="glyphicon glyphicon-list"></i> 專業(yè)管理</a></li>
          <li><a href="/class_list"><i class="glyphicon glyphicon-tag"></i> 班級(jí)管理</a></li>
          <li><a href="/course_list"><i class="glyphicon glyphicon-file"></i>課程管理</a></li>
          <li><a href="/student_list"><i class="glyphicon glyphicon-user"></i>學(xué)生管理</a></li>
          <li><a href="/teacher_list"><i class="glyphicon glyphicon-pencil"></i>教師管理</a></li>
          <li><a href="/record_list"><i class="glyphicon glyphicon-th-list"></i>學(xué)生成績(jī)管理</a></li>
          <li class="submenu">
            <a href="#">
              <i class="glyphicon glyphicon-cog"></i> 系統(tǒng)設(shè)置
              <span class="caret pull-right"></span>
            </a>
            <!-- Sub menu -->
            <ul>
              <li><a href="/login">Login</a></li>
              <li><a href="/signup">Signup</a></li>
            </ul>
          </li>
        </ul>
      </div>
    </div>
    <div class="col-md-10">
      <div class="content-box-large">
        <div class="panel-heading">
          <div class="panel-title">編輯學(xué)院</div>
        </div>
        <div class="panel-body">
          <form class="form-horizontal" role="form" action="/edit_academy/?id={{ academy.id }}" method="post">
            {% csrf_token %}
            {#<input type="text" name="edit_id" value="{{ academy.id }}" class="hide">#}
            <div class="form-group">
              <label for="input1" class="col-sm-2 control-label">學(xué)院名稱</label>
              <div class="col-sm-10">
                <input class="form-control" id="input1" placeholder="姓名" name="edit_name" value="{{ academy.name }}">
              </div>
            </div>
            <div class="form-group">
              <div class="col-sm-offset-2 col-sm-10">
                <button type="submit" class="btn btn-primary">保存</button>
                <button type="submit" formmethod="get" formaction="/academy_list/" class="btn btn-default">返回</button>
              </div>
            </div>
          </form>
        </div>
      </div>
    </div>
  </div>
</div>
{% endblock content %}

學(xué)院列表:academy_list.html

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)

<!-- extends表明此頁(yè)面繼承自 base.html 文件 -->
{% extends "base.html" %} {% load static %}
<!-- 寫入 base.html 中定義的 title -->
{% block title %} 學(xué)院列表 {% endblock title %}
<!-- 寫入 base.html 中定義的 content -->
{% block content %}
<div class="page-content">
  <div class="row">
    <div class="col-md-2">
      <div class="sidebar content-box" style="display: block;">
        <ul class="nav">
          <!-- Main menu -->
          <li class="current"><a href="/academy_list"><i class="glyphicon glyphicon-home"></i>學(xué)院管理</a></li>
          <li ><a href="/major_list"><i class="glyphicon glyphicon-list"></i> 專業(yè)管理</a></li>
          <li><a href="/class_list"><i class="glyphicon glyphicon-tag"></i> 班級(jí)管理</a></li>
          <li><a href="/course_list"><i class="glyphicon glyphicon-file"></i>課程管理</a></li>
          <li><a href="/student_list"><i class="glyphicon glyphicon-user"></i>學(xué)生管理</a></li>
          <li><a href="/teacher_list"><i class="glyphicon glyphicon-pencil"></i>教師管理</a></li>
          <li><a href="/record_list"><i class="glyphicon glyphicon-th-list"></i>學(xué)生成績(jī)管理</a></li>
          <li class="submenu">
            <a href="#">
              <i class="glyphicon glyphicon-cog"></i> 系統(tǒng)設(shè)置
              <span class="caret pull-right"></span>
            </a>
            <!-- Sub menu -->
            <ul>
              <li><a href="/login">Login</a></li>
              <li><a href="/signup">Signup</a></li>
            </ul>
          </li>
        </ul>
      </div>
    </div>
    <div class="col-md-10">
      <div class="content-box-large">
        <div class="panel-heading">
          <div class="panel-title">學(xué)院列表</div>
        </div>
        <div class="col-md-3 col-sm-6 pull-right add-btn">
          <a href="/add_academy/" class="btn btn-info pull-right">新增
          </a>
        </div>
        <div class="panel-body">
          <table cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered" id="example">
            <thead>
            <tr>
              <th>序號(hào)</th>
              <th>學(xué)院名稱</th>
              <th>操作</th>
            </tr>
            </thead>
            <tbody>
            {% for academy in academy_list %}
            <tr>
              <td>{{ forloop.counter }}</td>
              <td>{{ academy.name }}</td>
              <td class="text-center">
                <a class="btn btn-info btn-sm" href="/edit_academy/?id={{ academy.id }}"><i
                        class="fa fa-pencil fa-fw"
                        aria-hidden="true"></i>編輯
                </a>
                <a class="btn btn-danger btn-sm" href="/drop_academy/?id={{ academy.id }}"><i
                        class="fa fa-trash-o fa-fw"
                        aria-hidden="true"></i>刪除
                </a>
              </td>
            </tr>
            {% endfor %}
            </tbody>
          </table>
        </div>
      </div>
    </div>
  </div>
</div>
{% endblock content %}

7.測(cè)試及運(yùn)行

至此,我們已經(jīng)在Django項(xiàng)目文件夾DjangoSms下創(chuàng)建了一個(gè)app:app01來(lái)管理我們的視圖功能。

同時(shí)通過(guò)URL將視圖和網(wǎng)頁(yè)進(jìn)行了數(shù)據(jù)的關(guān)聯(lián)和展示。

在Windows命令行輸入:

python manage.py runserver

運(yùn)行服務(wù)器后在瀏覽器中輸入我們之前配置的首頁(yè)對(duì)應(yīng)的URL地址:

http://127.0.0.1:8000/

首頁(yè)展示如下:

django的學(xué)生管理系統(tǒng),Python?Web畢業(yè)設(shè)計(jì),Django全棧開(kāi)發(fā),django,python,后端,Python課設(shè),Python畢設(shè)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-779254.html

到了這里,關(guān)于[Python+Django]Web學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)及系統(tǒng)實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JAVA學(xué)生信息管理系統(tǒng)(數(shù)據(jù)庫(kù)實(shí)現(xiàn))

    JAVA學(xué)生信息管理系統(tǒng)(數(shù)據(jù)庫(kù)實(shí)現(xiàn))

    這次的項(xiàng)目是用數(shù)據(jù)庫(kù)實(shí)現(xiàn)學(xué)生的信息管理系統(tǒng),有三步組成,寫項(xiàng)目鏈接數(shù)據(jù)庫(kù)實(shí)現(xiàn)相關(guān)的操作 開(kāi)發(fā)工具: eclipse、MySQL、navicat、mysql-connector-java-8.0.27 ? ? (1)主頁(yè)面 ? (2)添加界面 ? (3)刪除界面 ? ?(4)修改界面 ?(5)查找界面 (6)數(shù)據(jù)庫(kù)鏈接 ? 添加Java驅(qū)動(dòng)包

    2024年02月11日
    瀏覽(32)
  • 學(xué)生信息管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL

    學(xué)生信息管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)MySQL

    1.課程設(shè)計(jì)目的 學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分。一個(gè)功能齊全、簡(jiǎn)單易用的信息管理系統(tǒng)不但能有效地減輕學(xué)校相關(guān)工作人員的工作負(fù)擔(dān),它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要。所以學(xué)生信息管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖?/p>

    2024年02月05日
    瀏覽(29)
  • Java web學(xué)生信息管理系統(tǒng)(jsp)

    Java web學(xué)生信息管理系統(tǒng)(jsp)

    ??目錄 ??1 概述 1.1課程設(shè)計(jì)目的 1.2預(yù)備知識(shí) JAVAWeb: MySQL: JSP: 1.3實(shí)訓(xùn)的內(nèi)容和要求 ??2 需求分析 2.1系統(tǒng)目標(biāo) 2.2功能分析: 2.3開(kāi)發(fā)環(huán)境: ??3 設(shè)計(jì)步驟 3.1系統(tǒng)流程圖 3.3功能詳細(xì)分析 ??4 詳細(xì)設(shè)計(jì)(要有數(shù)據(jù)庫(kù)可視化表) 4.1數(shù)據(jù)庫(kù)表 ?4.2部分代碼展示: ??5 程序運(yùn)行 ??

    2024年02月03日
    瀏覽(22)
  • java課程設(shè)計(jì)(學(xué)生信息管理系統(tǒng)設(shè)計(jì))+數(shù)據(jù)庫(kù)

    java課程設(shè)計(jì)(學(xué)生信息管理系統(tǒng)設(shè)計(jì))+數(shù)據(jù)庫(kù)

    ?? ?? 本期帶領(lǐng)大家一起來(lái)學(xué)習(xí) java課程設(shè)計(jì)(學(xué)生信息管理系統(tǒng)設(shè)計(jì))+數(shù)據(jù)庫(kù) 的實(shí)現(xiàn)思路 ?? ?? 學(xué)生信息包括:學(xué)號(hào),姓名,年齡,性別,出生年月,地址,電話,E-mail等。試設(shè)計(jì)學(xué)生信息管理系統(tǒng),使之能提供以下功能: 1、系統(tǒng)以菜單方式工作 2、學(xué)生信息錄入功能

    2024年02月08日
    瀏覽(31)
  • 利用java和mysql數(shù)據(jù)庫(kù)創(chuàng)建學(xué)生信息管理系統(tǒng)

    利用java和mysql數(shù)據(jù)庫(kù)創(chuàng)建學(xué)生信息管理系統(tǒng)

    管理系統(tǒng)的使用可以大大提高我們的工作效率,給我們的生活帶來(lái)極大的便利,因此我們?cè)趯W(xué)習(xí)編程語(yǔ)言的時(shí)候大多是要學(xué)習(xí)和實(shí)現(xiàn)一個(gè)管理系統(tǒng)的創(chuàng)建的。 學(xué)生信息管理系統(tǒng)是進(jìn)一步推進(jìn)學(xué)生學(xué)籍管理規(guī)范化、電子化控制和管理學(xué)生信息的總要舉措。系統(tǒng)針對(duì)學(xué)校學(xué)生信息

    2024年02月04日
    瀏覽(35)
  • python Django項(xiàng)目學(xué)生管理系統(tǒng)

    python Django項(xiàng)目學(xué)生管理系統(tǒng)

    涉及技術(shù): 后臺(tái):Django mysql 前端:Html css js Ajax boostrap 數(shù)據(jù)庫(kù):MySQL5.7 管理系統(tǒng)使用Xadmin框架,內(nèi)置Bootstrap3、插件庫(kù) 登錄注冊(cè):普通用戶與管理人員入口不同,老師及學(xué)生通過(guò)狀態(tài)選擇驗(yàn)證。 權(quán)限管理:權(quán)限組管理及個(gè)人權(quán)限管理。 基本信息管理:針對(duì)用戶(學(xué)生,老師

    2024年02月03日
    瀏覽(22)
  • 數(shù)據(jù)庫(kù)課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)(Sqlserver,C#,Winform)

    數(shù)據(jù)庫(kù)課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)(Sqlserver,C#,Winform)

    目錄 需求分析 一.登錄功能 二.注冊(cè)功能 三.管理員登錄后跳轉(zhuǎn)到功能頁(yè)面: 四.學(xué)生信息管理(主界面,刪除功能在主界面代碼中) 五.學(xué)生信息添加和修改(設(shè)計(jì)在一個(gè)頁(yè)面上,修改需要選中行) 六.課程信息管理(刪除功能在主界面中) ?七.課程信息添加和修改 ?八.成績(jī)

    2024年02月02日
    瀏覽(28)
  • 數(shù)據(jù)庫(kù)課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)C#,SQL Sever

    數(shù)據(jù)庫(kù)課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)C#,SQL Sever

    目錄 利用SQL Sever和 VS C#實(shí)現(xiàn) 一、程序流程圖 二、具體實(shí)現(xiàn):利用SQL Sever和 VS實(shí)現(xiàn),使用C#連接數(shù)據(jù)庫(kù) 1、新建一個(gè)名為MySchool的數(shù)據(jù)庫(kù)??????? 2、C#連接數(shù)據(jù)庫(kù),并實(shí)現(xiàn)對(duì)MySchool數(shù)據(jù)庫(kù)的增、刪、改、查操作 (1)主界面? (2)學(xué)生登錄頁(yè)面 (3)個(gè)人主頁(yè) (4)注冊(cè)頁(yè)

    2024年01月18日
    瀏覽(29)
  • 學(xué)生信息管理系統(tǒng) Java+SQL Server 數(shù)據(jù)庫(kù)原理課程

    學(xué)生信息管理系統(tǒng) Java+SQL Server 數(shù)據(jù)庫(kù)原理課程

    該項(xiàng)目實(shí)現(xiàn)了圖形化界面的數(shù)據(jù)庫(kù)的登錄,以及對(duì)數(shù)據(jù)庫(kù)中表的增刪查改。 正好老師布置了相關(guān)作業(yè),通過(guò)Java 連接 SQL Server 數(shù)據(jù)庫(kù),就寫一個(gè)學(xué)生管理系統(tǒng)。 jdk8 數(shù)據(jù)庫(kù)連接通過(guò)sqljdbc6.0 圖形化界面用swing 目錄 1、Java 連接SQL Server數(shù)據(jù)庫(kù) 2、準(zhǔn)備數(shù)據(jù)庫(kù) 3、登錄界面 要求:

    2024年02月09日
    瀏覽(27)
  • 基于Python+Django實(shí)現(xiàn)的學(xué)生成績(jī)管理系統(tǒng)

    基于Python+Django實(shí)現(xiàn)的學(xué)生成績(jī)管理系統(tǒng)

    作者主頁(yè):編程指南針 作者簡(jiǎn)介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者、CSDN博客專家 、掘金特邀作者、多年架構(gòu)師設(shè)計(jì)經(jīng)驗(yàn)、騰訊課堂常駐講師 主要內(nèi)容:Java項(xiàng)目、簡(jiǎn)歷模板、學(xué)習(xí)資料、面試題庫(kù)、技術(shù)互助 收藏點(diǎn)贊不迷路? 關(guān)注作者有好處 文末獲取源碼 ? 語(yǔ)言環(huán)境:Python3.7 數(shù)據(jù)庫(kù):

    2024年02月11日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包