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使用turtule画五角星的方法
Jul 09 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
python difflib模块示例讲解
Sep 13 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
python读取文件名称生成list的方法
Apr 27 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
python3 tcp的粘包现象和解决办法解析
Dec 09 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
Feb 21 Python
Python虚拟环境的创建和使用详解
Sep 07 Python
Python学习之异常中的finally使用详解
Mar 16 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
消息持续发送的完整例子
2006/10/09 PHP
基于mysql的论坛(5)
2006/10/09 PHP
PHP 第三节 变量介绍
2012/04/28 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
Vue.js 2.0 移动端拍照压缩图片上传预览功能
2017/03/06 Javascript
Angular排序实例详解
2017/06/28 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
Vue解决移动端弹窗滚动穿透问题
2020/12/15 Vue.js
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
python返回数组的索引实例
2019/11/28 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
员工年终演讲稿
2014/01/03 职场文书
初一体育教学反思
2014/01/29 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
中学生演讲稿
2014/04/26 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
2014年药房工作总结
2014/11/22 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python