django学习笔记-学生管理系统(django实现)笔记中仅实现了对数据的全部查询。
下面实现新增、删除、修改,代码如下。
下面的代码没有对输入框内容进行限制,如果输入不符合规则的内容,会出现错误。
本篇更新完毕后django更新暂停一段,由于工作岗位是测试工程师,后面将重点关注测试相关内容。
views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
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
1
2
3
4
5
6
7
8
9
10
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
{ % 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
{ % 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
{ % 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
{ % 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
* {
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
1
2
3
4
5
6
7
8
9
|
.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