基于Python + Django 开发一款学生管理系统(附源码)

这篇具有很好参考价值的文章主要介绍了基于Python + Django 开发一款学生管理系统(附源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.开发环境

开发工具:Pycharm 2020.1.1

开发语言:Python 3.8.5

Web框架:Djanjo 3.0.3

前端框架:bootstrap 3.3.7

数据库:MySQL 8.0.21 + Navicat Premium 15.0.17

操作系统:macOS 10.14.6

源码分享&技术交流

技术要学会分享、交流,不建议闭门造车。 本文技术由粉丝群小伙伴分享汇总。源码、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、添加微信号:dkl88191,备注:来自CSDN +学管系统
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:学管系统

2.项目实战

1)创建Django项目
  • Pycharm创建Django

django学生信息管理系统,学习笔记,python,django,开发语言

  • 目录结构如下

django学生信息管理系统,学习笔记,python,django,开发语言

2)创建应用
  • 打开Pycharm的终端,输入如下命令,创建Web应用
python manage.py startapp Web    # Web名字可以任意取  

django学生信息管理系统,学习笔记,python,django,开发语言

  • settings.py文件里INSTALLED_APPS下面添加Web完成应用注册

django学生信息管理系统,学习笔记,python,django,开发语言

3)配置MySQL
  • 修改settings.py文件中的sqlite3MySQL

django学生信息管理系统,学习笔记,python,django,开发语言

DATABASES = {  
    'default': {  
        'ENGINE': 'django.db.backends.mysql',  
        'NAME': 'eleven',  
        'USER': 'root',  
        'Pw': '123456',  
        'HOST': '127.0.0.1',  
        'PORT': 3306  
    }  
}  
4)数据模型层创建
  • 在应用Web下的models.py添加Student模型

django学生信息管理系统,学习笔记,python,django,开发语言

class Student(models.Model):  
    student_no = models.CharField(max_length = 32, unique=True)  
    student_name = models.CharField(max_length = 32)  

执行如下命令,在数据库生成表结构

# 生成文件记录模型的变化  
python manage.py makemigrations Web  
# 将模型变化同步至数据库,我们可以在数据库生成对应的表结构  
python manage.py migrate Web  

django学生信息管理系统,学习笔记,python,django,开发语言

数据库中生成的表

django学生信息管理系统,学习笔记,python,django,开发语言

5)路由配置

el_sms里面的urls.py里面添加Web的路由配置

django学生信息管理系统,学习笔记,python,django,开发语言

from django.contrib import admin  
from django.urls import path  
from django.conf.urls import url, include  
  
# 请求路径url和处理方法的映射配置  
urlpatterns = [  
    path('admin/', admin.site.urls),  
    url(r'^Web/', include('Web.urls'))  
]  

然后在Web创建一个urls.py文件,添加路由配置如下:

# coding=utf-8  
from django.conf.urls import url  
from . import views  
  
urlpatterns = [  
 url(r'^$', views.index),  
 url(r'^add/$', views.add),  
 url(r'^edit/$', views.edit),  
 url(r'^delete/$', views.delete)  
]  

django学生信息管理系统,学习笔记,python,django,开发语言

6)增删改查视图函数

在应用Web的视图层文件views.py添加对学生信息增删改查的处理函数

import MySQLdb  
from django.shortcuts import render, redirect  
  
# Create your views here.  
  
# 连接MySQL数据库  
conn = MySQLdb.connect(host="localhost", user="root", pw="123456", db="eleven", charset='utf8')  
  
  
# 学生信息列表处理函数  
def index(request):  
    with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor:  
        cursor.execute("SELECT id,student_no,student_name FROM Web_student")  
    students = cursor.fetchall()  
    return render(request, 'student/index.html', {'students': students})  
  
  
# 学生信息新增处理函数  
def add(request):  
    if request.method == 'GET':  
        return render(request, 'student/add.html')  
    else:  
        student_no = request.POST.get('student_no', '')  
    student_name = request.POST.get('student_name', '')  
    with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor:  
        cursor.execute("INSERT INTO Web_student (student_no,student_name) "  
                       "values (%s,%s)", [student_no, student_name])  
        conn.commit()  
    return redirect('../')  
  
  
# 学生信息修改处理函数  
def edit(request):  
    if request.method == 'GET':  
        id = request.GET.get("id")  
        with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor:  
            cursor.execute("SELECT id,student_no,student_name FROM Web_student where id =%s", [id])  
            student = cursor.fetchone()  
        return render(request, 'student/edit.html', {'student': student})  
    else:  
        id = request.POST.get("id")  
        student_no = request.POST.get('student_no', '')  
        student_name = request.POST.get('student_name', '')  
        with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor:  
            cursor.execute("UPDATE Web_student set student_no=%s,student_name=%s where id =%s",  
                           [student_no, student_name, id])  
            conn.commit()  
        return redirect('../')  
  
  
# 学生信息删除处理函数  
def delete(request):  
    id = request.GET.get("id")  
    with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor:  
        cursor.execute("DELETE FROM Web_student WHERE id =%s", [id])  
    conn.commit()  
    return redirect('../')  
7)模板页面创建

django学生信息管理系统,学习笔记,python,django,开发语言

学生信息列表页

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>学生列表</title>  
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"  
          integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">  
  
    <!-- 可选的 Bootstrap 主题文件(一般不用引入) -->  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap-theme.min.css"  
          integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">  
  
    <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->  
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"  
            integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"  
            crossorigin="anonymous"></script>  
</head>  
<body>  
<div class="container page-header">  
    <div class="container page-body">  
  
        <div class="col-md-9" role="main">  
            <table class="table table-striped">  
                <a class="btn btn-warning" href="../Web/add" role="button">添加</a>  
                <tr>  
                    <th>编号</th>  
                    <th>学号</th>  
                    <th>姓名</th>  
                    <th>操作</th>  
                </tr>  
                {% for student in students %}  
                    <tr>  
                        <td>{{ forloop.counter }}</td>  
                        <td>{{ student.student_no }}</td>  
                        <td>{{ student.student_name }}</td>  
                        <td>  
                            <a class="btn btn-danger" href="../Web/delete?id={{ student.id }}">删除</a>  
                            <a class="btn btn-warning" href="../Web/edit?id={{ student.id }}">修改</a>  
                        </td>  
                    </tr>  
                     {% endfor %}  
            </table>  
        </div>  
    </div>  
</div>  
  
</body>  
</html>  

学生信息新增页

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>学生添加</title>  
   <!-- ⌘⌥L 格式化代码 -->  
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"  
          integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">  
  
    <!-- 可选的 Bootstrap 主题文件(一般不用引入) -->  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap-theme.min.css"  
          integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">  
  
    <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->  
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"  
            integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"  
            crossorigin="anonymous"></script>  
</head>  
<body>  
<div class="container page-header">  
    <div class="container page-body">  
        <form class="form-horizontal" method="post" action="../add/">  
            {% csrf_token %}  
            <div class="form-group">  
                <label for="inputEmail3" class="col-sm-2 control-label">学号</label>  
                <div class="col-sm-3">  
                    <input type="text" class="form-control" placeholder="请输入学号" name="student_no"/>  
                </div>  
            </div>  
            <div class="form-group">  
                <label for="inputEmail3" class="col-sm-2 control-label">姓名</label>  
                <div class="col-sm-3">  
                    <input type="text" class="form-control" placeholder="请输入姓名" name="student_name"/>  
                </div>  
            </div>  
            <div class="form-group">  
                <div class="col-sm-offset-2 col-sm-10">  
                    <button type="submit" class="btn btn-default">Sign in</button>  
                </div>  
            </div>  
        </form>  
    </div>  
</div>  
  
</body>  
</html>  

学生信息编辑页

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>学生修改</title>  
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"  
          integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">  
  
    <!-- 可选的 Bootstrap 主题文件(一般不用引入) -->  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap-theme.min.css"  
          integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">  
  
    <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->  
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"  
            integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"  
            crossorigin="anonymous"></script>  
</head>  
<body>  
<div class="container page-header">  
    <div class="container page-body">  
        <form class="form-horizontal" method="post" action="../edit/">  
            {% csrf_token %}  
            <input type="hidden" name="id" value="{{ student.id }}"/>  
            <div class="form-group">  
                <label for="inputEmail3" class="col-sm-2 control-label">学号</label>  
                <div class="col-sm-3">  
                    <input type="text" class="form-control" placeholder="Text input" name="student_no"  
                           value="{{ student.student_no }}"/>  
                </div>  
            </div>  
  
            <div class="form-group">  
                <label for="inputEmail3" class="col-sm-2 control-label">姓名</label>  
                <div class="col-sm-3">  
                    <input type="text" class="form-control" placeholder="Text input" name="student_name"  
                           value="{{ student.student_name }}"/>  
                </div>  
            </div>  
  
            <div class="form-group">  
                <div class="col-sm-offset-2 col-sm-10">  
                    <button type="submit" class="btn btn-default">修改</button>  
                </div>  
            </div>  
  
        </form>  
    </div>  
</div>  
</body>  
</html>  
8)启动web服务

Terminal终端输入以下命令启动web服务

python manage.py runserver  

服务启动后,打开浏览器输入http://127.0.0.1:8000/Web即可进入学生信息管理列表页

django学生信息管理系统,学习笔记,python,django,开发语言文章来源地址https://www.toymoban.com/news/detail-778161.html

到了这里,关于基于Python + Django 开发一款学生管理系统(附源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于python+django+vue.js开发的医院门诊管理系统/医疗管理系统

    功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。 功能包括:医生管理、科室管理、护士管理、住院管理、药品管理、用户管理、日志管理、系统信息模块。 源码地址 https://github.com/geeeeeeeek/python_hospital 演示地址 http://hospital.gi

    2024年02月21日
    浏览(35)
  • 基于python+django+vue.js开发的社区养老管理系统

    功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。 功能包括:老人管理、护工管理、亲属管理、病史管理、房间管理、活动管理、用户管理、日志管理、系统信息模块。 源码地址 https://github.com/geeeeeeeek/python_yanglao 演示地址 http

    2024年02月20日
    浏览(56)
  • 基于python+django+vue.js开发的健身房管理系统

    功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。 功能包括:教练管理、会员管理、场地管理、设备管理、用户管理、日志管理、系统信息模块。 源码地址 https://github.com/geeeeeeeek/python_fitness 演示地址 http://fitness.gitapp.cn 演示帐号

    2024年02月20日
    浏览(37)
  • [Python+Django]Web学生信息管理系统数据库设计及系统实现

    本文我们完成数据的设计,并通过Django框架完成数据库构建同时利用Django框架模式实现学生信息管理系统的功能。 简单的包装下毕设应该没问题了。 Python,Mysql,Pycharm的安装本文就不做特别介绍了,有需要的同学请参考如下博文。 Python + Django4 搭建个人博客(二):准备开

    2024年02月03日
    浏览(48)
  • Python Django的学生选课管理系统,实现多用户登录注册,可选课可评课

    学生选课管理系统是一个基于Python Django开发的教务管理系统,旨在提供方便快捷的选课服务和学籍管理功能。该系统分为教师端和学生端两个角色,为教师和学生提供了不同的功能和权限。 教师端功能: 教师可以登录系统后,进行课程管理、成绩录入和学生管理等操作。具

    2024年01月24日
    浏览(34)
  • 基于C语言的学生信息管理系统开发

    软件功能描述 功能模块图 2.信息管理模块 功能说明:输入、增加、删除、修改学生信息同时返回上一级 查询模块 功能说明:根据性别民族等查找学生人数、按照课程最高分查询学生信息、按照课程统计学生的平均分数同时返回上一级 成绩排序模块 功能说明:根据课程对学

    2024年02月04日
    浏览(42)
  • 基于python的学生成绩管理,用python做成绩管理系统

    大家好,给大家分享一下python编写一个简单的学生成绩管理程序,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 概述 在本篇文章中,我们将探讨如何使用Python编程语言创建一个简单但功能齐全的学生成绩管理系统。该系统将允许我们添加新的学生、删除

    2024年02月03日
    浏览(25)
  • 基于Python的学生信息管理系统

    注意,该项目为Python基础语法的一个综合,项目数据库。  

    2023年04月11日
    浏览(29)
  • 基于Python的学生成绩管理系统

    末尾获取源码 开发语言:python 后端框架:django 数据库:MySQL5.7 开发软件:Pycharm 是否Maven项目:是 目录 一、项目简介 二、系统功能 三、系统项目截图 四、核心代码 4.1登录相关 4.2文件上传 4.3封装 网络技术的快速发展给各行各业带来了很大的突破,也给各行各业提供了一种

    2024年02月05日
    浏览(36)
  • 基于python的简单学生信息管理系统

    针对传统的学生信息管理方式,效率低下,不易存储,和数字化等问题,开发基于 Python 的学生信息管理系统,用于管理学生的个人信息和学习记录。它可以帮助教师和管理员更有效地管理学生信息,如学生基本信息、成绩、课程安排、考试记录等。同时,信息化、数字化的

    2024年02月05日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包