Django实现学生管理系统


Posted in Python onFebruary 26, 2019

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
}

实现效果如下:

Django实现学生管理系统

Django实现学生管理系统

Django实现学生管理系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
python标准算法实现数组全排列的方法
Mar 17 Python
Python中的random()方法的使用介绍
May 15 Python
Python入门之三角函数tan()函数实例详解
Nov 08 Python
Python实现可自定义大小的截屏功能
Jan 20 Python
基于tensorflow加载部分层的方法
Jul 26 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
python之array赋值技巧分享
Nov 28 Python
python 循环数据赋值实例
Dec 02 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
Jun 12 Python
python爬取微信公众号文章的方法
Feb 26 #Python
python下载微信公众号相关文章
Feb 26 #Python
python处理DICOM并计算三维模型体积
Feb 26 #Python
学习python可以干什么
Feb 26 #Python
Python3几个常见问题的处理方法
Feb 26 #Python
django 自定义过滤器的实现
Feb 26 #Python
使用Python将Mysql的查询数据导出到文件的方法
Feb 25 #Python
You might like
php 从数据库提取二进制图片的处理代码
2009/09/09 PHP
劣质的PHP代码简化
2010/02/08 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
javascript 函数调用规则
2009/08/26 Javascript
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
webpack4.0打包优化策略整理小结
2018/03/30 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
python实现音乐下载的统计
2018/06/20 Python
Django models.py应用实现过程详解
2019/07/29 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
银行门卫岗位职责
2013/12/29 职场文书
公司董事长岗位职责
2014/06/08 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
倡议书作文
2015/01/19 职场文书
工作简报格式范文
2015/07/21 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL