Django实现学生管理系统
作者:yaoliuwei1426 发布时间:2023-07-22 18:05:59
标签:Django,管理系统
Django学习笔记-学生管理系统(Django实现)笔记中仅实现了对数据的全部查询。
下面实现新增、删除、修改,代码如下。
下面的代码没有对输入框内容进行限制,如果输入不符合规则的内容,会出现错误。
本篇更新完毕后Django更新暂停一段,由于工作岗位是测试工程师,后面将重点关注测试相关内容。
views.py
from django.shortcuts import render,reverse
from stusys import models
from django.http import HttpResponseRedirect
def stuinfo(request):
stuinfo_list_obj = models.Stuinfo.objects.all()
return render(request,'info.html',{'stuinfo_list':stuinfo_list_obj})
def add_stuinfo(request):
if request.method == "POST":
id = request.POST['id']
name = request.POST['name']
math = request.POST['math']
chinese=request.POST['chinese']
english=request.POST['english']
total=float(math)+float(chinese)+float(english)
models.Stuinfo.objects.create(id=id,name=name,math=math,chinese=chinese,english=english,total=total)
return HttpResponseRedirect(reverse('stuinfo'))
elif request.method == "GET":
return render(request,'add.html')
def del_stuinfo(request):
id=request.GET.get('id')
models.Stuinfo.objects.filter(id=id).delete()
return HttpResponseRedirect(reverse('stuinfo'))
def mod_stuinfo(request):
if request.method=='GET':
id = request.GET.get('id')
stu_detail =models.Stuinfo.objects.get(id=id)
context={'stu_detail':stu_detail}
return render(request,'mod.html',context=context)
if request.method=="POST":
id = request.POST['id']
name = request.POST['name']
math = request.POST['math']
chinese=request.POST['chinese']
english=request.POST['english']
total=float(math)+float(chinese)+float(english)
models.Stuinfo.objects.filter(id=id).update(name=name,math=math,chinese=chinese,english=english,total=total)
return HttpResponseRedirect(reverse('stuinfo'))
urls.py
from django.contrib import admin
from django.urls import path
from stusys import views
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.stuinfo,name='stuinfo'),
path('add/',views.add_stuinfo,name='add_stuinfo'),
path('del/',views.del_stuinfo,name='del_stuinfo'),
path('mod/',views.mod_stuinfo,name='mod_stuinfo')
]
templates
base.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生成绩管理系统</title>
<link rel="stylesheet" href="{% static 'nav.css' %}" rel="external nofollow" >
<link rel="stylesheet" href="{% static 'table.css' %}" rel="external nofollow" >
</head>
<body>
<ul class="nav">
<li><a href="{% url 'stuinfo' %} " rel="external nofollow" >首页</a></li>
<li><a href="{% url 'add_stuinfo' %} " rel="external nofollow" >添加</a></li>
</ul>
<div style="padding:20px;margin-top:30px;background-color:#1abc9c;height:1500px;">
{% block content %} {% endblock %}
</div>
</body>
</html>
add.html
{% extends 'base.html' %}
{% block content %}
<div>
<form action ="{% url 'add_stuinfo' %}" method="post">
{% csrf_token %}
<table class="table" style="border-style:none;width: 50%" >
<tr>
<td style="border-style:none" >学 号:</td>
<td style="border-style:none"><input name="id"></td>
</tr>
<tr>
<td style="border-style:none">姓 名:</td>
<td style="border-style:none"><input name="name"></td>
</tr>
<tr>
<td style="border-style:none">数学成绩:</td>
<td style="border-style:none"><input name="math"></td>
</tr>
<tr>
<td style="border-style:none">语文成绩:</td>
<td style="border-style:none"><input name="chinese"></td>
</tr>
<tr>
<td style="border-style:none">英语成绩:</td>
<td style="border-style:none"><input name="english"></td>
</tr>
<tr>
<td colspan="2" style="border-style:none" ><input type="submit" value="添加" style="width:100px;height:40px;"></td>
</tr>
</table>
</form>
</div>
{% endblock %}
info.html
{% extends 'base.html' %}
{% block content %}
<table class="table" >
<thead>
<tr >
<td >学号</td>
<td >姓名</td>
<td >数学</td>
<td >语文</td>
<td >英文</td>
<td >总分</td>
<td colspan="2"> </td>
</tr>
</thead>
<tbody>
{% for stuinfo in stuinfo_list %}
<tr >
<td >{{ stuinfo.id }}</td>
<td >{{ stuinfo.name }}</td>
<td >{{ stuinfo.math}}</td>
<td >{{ stuinfo.chinese }}</td>
<td >{{ stuinfo.english }}</td>
<td >{{ stuinfo.total }}</td>
<td ><a href="{% url 'del_stuinfo' %}?id={{ stuinfo.id}}" rel="external nofollow" >删除</a></td>
<td ><a href="{% url 'mod_stuinfo' %}?id={{ stuinfo.id}}" rel="external nofollow" >修改</a></td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
mod.html
{% extends 'base.html' %}
{% block content %}
{# <form action ="{% url 'mod_stuinfo' %}" method="post">#}
{# {% csrf_token %}#}
{# #}
{# <p>学 号:<input name="id" type="text" value="{{ stu_detail.id}}" readonly="readonly" ></p>#}
{# <p>姓 名:<input name="name" type="text" value="{{ stu_detail.name}}"></p>#}
{# <p>数学成绩:<input name="math" type="text" value="{{ stu_detail.math}}"></p>#}
{# <p>语文成绩:<input name="chinese" type="text" value="{{ stu_detail.chinese}}"></p>#}
{# <p>英语成绩:<input name="english" type="text" value="{{ stu_detail.english}}"></p>#}
{# <p><input type="submit" value="修改"></p>#}
{# </form>#}
<form action ="{% url 'mod_stuinfo' %}" method="post">
{% csrf_token %}
<table class="table" style="border-style:none;width: 50%" >
<tr>
<td style="border-style:none" >学 号:</td>
<td style="border-style:none"><input name="id" type="text" value="{{ stu_detail.id}}" readonly="readonly" disabled="disabled"></td>
</tr>
<tr>
<td style="border-style:none">姓 名:</td>
<td style="border-style:none"><input name="name" type="text" value="{{ stu_detail.name}}"></td>
</tr>
<tr>
<td style="border-style:none">数学成绩:</td>
<td style="border-style:none"><input name="math" type="text" value="{{ stu_detail.math}}"></td>
</tr>
<tr>
<td style="border-style:none">语文成绩:</td>
<td style="border-style:none"><input name="chinese" type="text" value="{{ stu_detail.chinese}}"></td>
</tr>
<tr>
<td style="border-style:none">英语成绩:</td>
<td style="border-style:none"><input name="english" type="text" value="{{ stu_detail.english}}"></td>
</tr>
<tr>
<td colspan="2" style="border-style:none" ><input type="submit" value="修改" style="width:100px;height:40px;"></td>
</tr>
</table>
</form>
{% endblock %}
静态资源文件:
nav.css
*{
margin: 0;
padding: 0;
}
.nav{
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
position: fixed;
top: 0;
width: 100%;
}
.nav li{
float: left;
}
.nav li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.nav li a:hover:not(.active) {
background-color: #111;
}
.active {
background-color: #4CAF50;
}
table.css
.table{
margin-top:50px;width:100% ;border:solid #add9c0; border-width:1px 0px 0px 1px;}
.table tr td {
border:solid #add9c0; border-width:0px 1px 1px 0px; padding:10px 0px;font-size:18px;align:center;}
.table tr td input{
width: 250px; height: 30px;font-size:18px
}
实现效果如下:
来源:https://blog.csdn.net/yaoliuwei1426/article/details/82854539


猜你喜欢
- 听说安全地断开Connection连接的记录集可以提高ASP的运行速度,请问如何实现?很多人会将一个Connection对象存储在Appli
- HTML5,被传为Flash 的杀手,是一种用于web 应用程序开发、具有变革意义的网络技术。HTML 5提供了一些新的元素和属性,其中有些
- <%Function BytesToBstr(body,Cset)dim objstreamset&n
- 首先让我们来看看有关 Perl 面向对象编程的三个基本定义:1. 一个“对象”是指一个“有办法知道它是属于哪个类”的简单引用。(
- 程序图标主要作用是为了使该程序更加具象及更容易理解,除了上述的作用外,有更好视觉效果的图标可以提高产品的整体体验和品牌,可引起用户的关注和下
- 一、前言 英语单词之间是通过空格分隔的,但是中文却不存在空格的概念,因此需要
- 本文实例讲述了Python实现读取并保存文件的类。分享给大家供大家参考,具体如下:这个类写在一个叫class_format.py 的文件里,
- 字符串和切片(string and slice)string底层就是一个byte的数组,因此,也可以进行切片操作。package maini
- 今天在看文档的时候,发现pytorch 的conv操作不是很明白,于是有了一下记录首先提出两个问题:1.输入图片是单通道情况下的filter
- asp中使用addnew方法添加一条记录后,我们经常使用取得自递增的ID,而使用bookmark很容易实现这样的功能。rs.open&nbs
- 1.概述"""基础知识:1.多任务:操作系统可以同时运行多个任务;2.单核CPU执行多任务:操作系统轮流让各个
- 本文实例讲述了Python数据分析之双色球统计单个红和蓝球哪个比例高的方法。分享给大家供大家参考,具体如下:统计单个红球和蓝球,哪个组合最多
- Macromedia Dreamweaver MX 2004提供了更多功能强劲的可视化设计工具、应用开
- 定义简单的类面向对象是更大的封装,在一个类中封装多个方法,这样通过这个类创建出来的对象,就可以直接调用这些方法了!定义只包含方法的类在pyt
- 一、要求二、原理决策树是一种类似于流程图的结构,其中每个内部节点代表一个属性上的“测试”,每个分支代表测试的结果,每个叶节点代表一个测试结果
- 1. 稀疏矩阵的建立:coo_matrix()from scipy.sparse import coo_matrix# 建立稀疏矩阵data
- 本文为大家分享了购物商城小程序,供大家参考,具体内容如下软件版本:python3.x功能:实现简单购物商城1.允许用户选择购买多
- Sys.path 指定用于模块搜索路径的字符串列表也可以通过sys模块的append方法在Python环境中增加搜索路径。Sys.path.
- QQ和微信这两款都是非常受人喜欢的聊天交友软件!可能大家平时没有留意到,也或者是大家可能很少用微信,或者很少用QQ吧!所以可能没有留意这些小
- 上一篇我们写了怎么将xmind转换成想要的excel格式,这篇再讲一下用Python自带的tkinter库设计一个简单的gui界面,让我们的