写在前面

在python课中老师要求使用python的web框架实现学生管理系统,经过查找资料等,最后选择了使用Django来搭建这个系统

Django

Django是一个开放源代码的Web应用框架,由Python写成。

Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。

Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。

MVC模式

Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。

View(视图) - 视图代表模型包含的数据的可视化。

Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。

MVC模式流程图.png

学生管理系统功能

1.前后端分离:前端根据不同用户有不同权限

2.普通用户:只能查询相关信息

3.root用户:能够通过前端添加学生信息

4.学生学习包括:姓名、学号、住址、学院、成绩

核心代码部分

manage.py 这是服务器的管理

#!/usr/bin/env python

"""Django's command-line utility for administrative tasks."""

import os

import sys

def main():

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'studentsSystem.settings')

try:

from django.core.management import execute_from_command_line

except ImportError as exc:

raise ImportError(

"Couldn't import Django. Are you sure it's installed and "

"available on your PYTHONPATH environment variable? Did you "

"forget to activate a virtual environment?"

) from exc

execute_from_command_line(sys.argv)

if __name__ == '__main__':

main()

配置本地数据库信息

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': '******', #数据库名称

'USER': 'root', #数据库名

'PASSWORD': '******', #数据库密码

'HOST': 'localhost', #表示本地访问

'PORT': '3306', #端口号,这个安装数据库的时候会配置

}

}

登录界面代码--在view.py里写

# 登录界面

def login(request):

if request.method == "POST":

id = request.POST.get('id')

username = request.POST.get('username')

password = request.POST.get('password')

if not all([id, username, password]):

return HttpResponse('参数不全')

else:

student = StudentModel.objects.filter(username=username, password=password)

if len(student):

# request.session['username'] = username

# 用以下方法,将用户的信息存放到session中,session在中间件中是默认启用的

request.session['user'] = {

'id': id,

'username': username,

'password': password

}

context = {

'status': username,

'aa': '已登录',

'lenght': 1

}

return render(request, 'studentManage/index.html', context)

else:

context = {

'aa': '用户名密码错误'

}

return render(request, 'studentManage/login.html', context)

else:

context = {

'status': '未登录状态',

'length': 0

}

return render(request, 'studentManage/login.html', context)

学生信息表--在models.py里面写

# 学生信息表

class StudentInformationModel(models.Model):

stu_id = models.CharField(max_length=15, verbose_name='学生ID')

stu_name = models.CharField(max_length=30, verbose_name='学生姓名')

stu_phone = models.CharField(max_length=20, verbose_name='学生电话')

str_addr = models.TextField(verbose_name='学生地址')

stu_faculty = models.CharField(max_length=20, verbose_name='院系')

stu_major = models.CharField(max_length=30, verbose_name='专业')

# 取消外键(外键是可用的)

# stu_course = models.ForeignKey('CourseModel', on_delete=True)

class Meta():

db_table = 'studentinformation'

分配url

urlpatterns = [

path('admin/', admin.site.urls),

path('student/', include('studentsApp.urls', namespace='student')),

]

app_name = 'studentsApp'

urlpatterns = [

path('index/', views.index, name='index'),

path('login/', views.login, name='login'),

path('logout/', views.logout, name='logout'),

path('add/', views.add, name='add'),

path('select/', views.select, name='select'),

path('delete/', views.delete, name='delete'),

path('update/', views.update, name='update')

]

效果展示

1.启动服务:python manage.py runserver

启动服务.png

2.访问系统:http://127.0.0.1:8000/student/index

访问系统.png

3.登录系统

登录系统.png

4.选择操作

选择操作.png

5.查询学生信息

查询学生信息.png

6.修改学生信息

修改学生信息.png

7.后台管理界面

后台管理.png

8.学生信息管理

学生信息管理.png

详细代码已经上传至github

写在后面

程序虽然写好了,还有一些地方需要优化,比如前端添加学生信息时可以采用导入表格批量添加,还有就是前端页面过于简单。希望后面能够写出好的demo

python学生管理系统数据库_Django+Mysql实现--学生管理系统相关推荐

  1. python propresql mysql_python数据库操作mysql:pymysql、sqlalchemy常见用法详解

    本文实例讲述了python数据库操作mysql:pymysql.sqlalchemy常见用法.分享给大家供大家参考,具体如下: 相关内容: 使用pymysql直接操作mysql 创建表 查看表 修改表 ...

  2. 计算机机房管理系统 数据库课设,学校机房管理系统数据库课程设计.doc

    学校机房管理系统数据库课程设计.doc 数据库原理及应用课程设计设计报告题目机房管理系统后台数据库学号131007220学生姓名指导教师提交时间2015/1/4目录第1章需求分析111课程设计概述11 ...

  3. 基于python 使用tk模块和mysql实现学生信息管理系统

    学生信息管理系统 好久没有发文啦,经过一段时间的学习,有所收获,写了个小项目,记录一下学习过程.好啦,废话不多说,我们直接说实现,看效果. 首先系统是有三个视图,一个管理员,一个教师,一个学生,运行效 ...

  4. mysql考勤数据库设计,mysql – 跟踪学生出勤的数据库设计

    我对数据库表的设计存在疑问,以跟踪学生的出勤情况.目前,我的桌上学生至少有4000名学生. 创建一个出勤数据库来跟踪他们的出勤率将近4000 * 30天* 12个月=> ~1,400,000行( ...

  5. mysql建学生-课程数据库_有一个“学生-课程”数据库,数据库中包括三个表:...

    (1)"学生"表Student由学号(Sno).姓名(Sname).性别(Ssex).年龄(Sage).所在系(Sdept)五个属性组成,可记为:Student(Sno,Sname ...

  6. mysql查询每个老师对应的所有学生_practice02_数据库02----查询所有学生的学号, 姓名, 选课数, 总成绩...

    1. 首先建立数据表 建立四张数据表(, 成绩表(score)) 1. 学生表(students) 1.学生id  ----  s_id 2. 学生姓名  ----  s_name 3. 学生生日 - ...

  7. python登录教务系统_python+mysql实现教务管理系统

    本文实例为大家分享了python实现教务管理系统,供大家参考,具体内容如下 mysql+python构成教务管理系统,提供系统管理员,教职工,学生三级.有注册,添加,修改,发布信息等功能. Login ...

  8. python下tkinter模块和mysql构建图书管理系统实验

    前言与准备 本次实验是大二数据库期末大作业,我采用的是python语言和mysql8.0.27制作的基于cs构架的数据库框架,由于之前从未了解过python语言,所以代码部分语言较为粗暴,未成年人请在 ...

  9. python批量查询数据库_Python + MySQL 批量查询百度收录

    做SEO的同学,经常会遇到几百或几千个站点,然后对于收录情况去做分析的情况 那么多余常用的一些工具在面对几千个站点需要去做收录分析的时候,那么就显得不是很合适. 在此特意分享给大家一个批量查询百度收录 ...

最新文章

  1. MapReduce的并行执行效率
  2. linux中yum进程占cpu百分之九十,在Deepin Linux系统中kworker进程占用CPU达到100%的解决...
  3. 如何理解H264 编码
  4. IBM MR10i阵列卡配置Raid0/Raid1/Raid5(转)
  5. boost::contract模块实现lambda表达式的测试程序
  6. jquery 判断元素显示或隐藏
  7. Redis哨兵主从配置(半自动)
  8. 地图分析--广度搜索
  9. (转)Page.ClientScript.RegisterStartupScript 与Page.ClientScript.RegisterClientScriptBlock 之间的区别...
  10. 数据全生命周期管理应用平台的组成
  11. 8个让DevOps转型取得成功的关键步骤
  12. VMware安装Linux时‘Operating System Not Found‘的解决方法
  13. 常用SQL语句汇总整理
  14. STL各容器的实现,时间复杂度,适用情况分析
  15. DialogBox不显示对话框的原因分析
  16. Win10的一些快捷键
  17. 无人机倾斜摄影技术应用(文末附作业指导书)
  18. 一统大数据江湖,趣话图说“存算分离”武学心法
  19. Win10、Win11打开远程桌面连接方法
  20. Matlab小实例(一)

热门文章

  1. 书评:他们思考,我们流汗--《华尔街的肉》
  2. 定义一个字典——Dictionary
  3. SSO单点登入原理及简单实现
  4. 小红书带你玩转“关键词”
  5. 分布式任务调度中心xxl-job
  6. 计算机文化基础试题集:
  7. Apache DbUtils 探秘
  8. (ch9) Deep Learning for Anomaly Detection: A Survey
  9. http://yuanma.wxb0.com/ 唯品源码网站
  10. python中画地图map的用法_使用basemap和python在地图中绘制海洋