Manage System (url跳转)

发布时间 2023-12-06 17:34:56作者: 木屐呀

py文件

 1 from django.conf.urls import url
 2 from django.contrib import admin
 3 from APP01.views import classes,teachers,students
 4 
 5 urlpatterns = [
 6     url(r'^admin/', admin.site.urls),
 7     # class相关
 8     url(r'^classes.html/', classes.get_classes),
 9     url(r'^add_classes.html/', classes.add_classes),
10     url(r'^del_classes.html/', classes.del_classes),
11     url(r'^edit_classes.html/', classes.edit_classes),
12     url(r'^set_teachers.html', classes.set_teachers),
13     # teacher相关
14     url(r'^teachers.html/', teachers.get_teachers),
15     url(r'^add_teachers.html/', teachers.add_teachers),
16     url(r'^del_teachers.html/', teachers.del_teachers),
17     url(r'^edit_teachers.html/', teachers.edit_teachers),
18     url(r'^set_classes.html', teachers.set_classes),
19     # student相关
20     url(r'^students.html/', students.get_students),
21     url(r'^add_students.html/', students.add_students),
22     url(r'^del_students.html/', students.del_students),
23     url(r'^edit_students.html/', students.edit_students),
24 ]
urls.py
 1 DATABASES = {
 2     'default': {
 3         'ENGINE': 'django.db.backends.mysql',
 4         'NAME': 'http001',  #你的数据库名字,现在mysql创建这样一个数据库
 5         'USER': 'root',   #你的数据库用户名
 6         'PASSWORD': '123',   #你的数据库密码
 7         'HOST': '',  #你的数据库主机,留空默认为localhost
 8         'PORT': '3306',#你的数据库端口
 9     }
10 }
settings.py
 1 from django.db import models
 2 
 3 # Create your models here.
 4 
 5 class Classes(models.Model):
 6     """
 7     班级表
 8     """
 9     name = models.CharField(max_length=32)
10     m = models.ManyToManyField("Teachers")
11 
12 class Teachers(models.Model):
13     """
14     老师表
15     """
16     name = models.CharField(max_length=32)
17 
18 class Student(models.Model):
19     username = models.CharField(max_length=32)
20     age = models.IntegerField()
21     gender = models.BooleanField()
22     cs = models.ForeignKey(Classes)
models.py
 1 from django.shortcuts import render,redirect,HttpResponse
 2 from APP01 import models
 3 
 4 def get_classes(request):
 5     cls_list = models.Classes.objects.all()
 6     return render(request,"get_classes.html",{'cls_list':cls_list})
 7 
 8 def add_classes(request):
 9     if request.method == "GET":
10         return render(request,"add_classes.html")
11     elif request.method == "POST":
12         name = request.POST.get('name')
13         models.Classes.objects.create(name=name)
14         return redirect('/classes.html/')
15 
16 def del_classes(request):
17     nid = request.GET.get('nid')
18     models.Classes.objects.filter(id=nid).delete()
19     return redirect('/classes.html/')
20 
21 def edit_classes(request):
22     if request.method == "GET":
23         nid = request.GET.get('nid')
24         obj = models.Classes.objects.filter(id=nid).first()
25         return render(request,"edit_classes.html",{'obj':obj})
26     elif request.method == "POST":
27         id = request.POST.get('cid')
28         name = request.POST.get('cname')
29         models.Classes.objects.filter(id=id).update(name=name)
30         return redirect("/classes.html/")
31 
32 def set_teachers(request):
33     if request.method == "GET":
34         nid = request.GET.get('nid')
35         cls_obj = models.Classes.objects.filter(id=nid).first()
36         cls_teacher = cls_obj.m.all()  #该班级对应的老师们
37         all_teacher = models.Teachers.objects.all() #所有的老师
38         return render(
39             request,
40             "set_teachers.html",
41             {"cls_teacher":cls_teacher,
42              "all_teacher":all_teacher,
43              "nid":nid}
44         )
45     elif request.method == "POST":
46         nid = request.GET.get("nid")
47         teacher_list = request.POST.getlist("ts")
48         print("当前班级的ID:", nid, "分配的老师们:", teacher_list)
49         class_obj = models.Classes.objects.filter(id=nid).first()
50         class_obj.m.set(teacher_list)
51         return redirect("/classes.html/")
classes.py
 1 from django.shortcuts import render,redirect,HttpResponse
 2 from APP01 import models
 3 
 4 def get_students(request):
 5     stu_list = models.Student.objects.all()
 6     return render(request,"get_students.html",{'stu_list':stu_list})
 7 
 8 def add_students(request):
 9     if request.method == "GET":
10         cls_list = models.Classes.objects.all()
11         return render(request,"add_students.html",{'cls_list':cls_list})
12     elif request.method == "POST":
13         username = request.POST.get("username")
14         age = request.POST.get("age")
15         gender = request.POST.get("gender")
16         cs = request.POST.get("cs")
17         models.Student.objects.create(
18             username = username,
19             age = age,
20             gender = gender,
21             cs_id = cs
22         )
23         return redirect("/students.html/")
24 def del_students(request):
25     nid = request.GET.get("nid")
26     stu_obj = models.Student.objects.filter(id=nid).delete()
27     return redirect("/students.html/")
28 
29 def edit_students(request):
30     if request.method == "GET":
31         nid = request.GET.get('nid')
32         stu_obj = models.Student.objects.filter(id=nid).first()
33         cls_list = models.Classes.objects.all()
34         return render(request,
35                       "edit_students.html",
36                       {'stu_obj':stu_obj,
37                        'cls_list':cls_list
38                        }
39                       )
40     elif request.method == "POST":
41         id = request.POST.get("sid")
42         username = request.POST.get("username")
43         age = request.POST.get("age")
44         gender = request.POST.get("gender")
45         cs = request.POST.get("cs")
46         models.Student.objects.filter(id=id).update(
47             username = username,
48             age = age,
49             gender = gender,
50             cs_id = cs
51         )
52         return redirect("/students.html/")
students.py
 1 from django.shortcuts import render,redirect,HttpResponse
 2 from APP01 import models
 3 
 4 def get_teachers(request):
 5     tea_list = models.Teachers.objects.all()
 6     return render(request,"get_teachers.html",{'tea_list':tea_list})
 7 
 8 def add_teachers(request):
 9     if request.method == "GET":
10         return render(request,"add_teachers.html")
11     elif request.method == "POST":
12         name = request.POST.get('name')
13         models.Teachers.objects.create(name=name)
14         return redirect("/teachers.html/")
15 
16 def del_teachers(request):
17     nid = request.GET.get("nid")
18     models.Teachers.objects.filter(id=nid).delete()
19     return redirect("/teachers.html/")
20 
21 def edit_teachers(request):
22     if request.method == "GET":
23         nid = request.GET.get("nid")
24         obj = models.Teachers.objects.filter(id=nid).first()
25         return render(request,"edit_teachers.html",{"obj":obj})
26     elif request.method == "POST":
27         id = request.POST.get("tid")
28         name = request.POST.get("tname")
29         models.Teachers.objects.filter(id=id).update(name=name)
30         return redirect("/teachers.html/")
31 
32 def set_classes(request):
33     if request.method == "GET":
34         nid = request.GET.get('nid')
35         tea_obj = models.Teachers.objects.filter(id=nid).first()
36         tea_class = tea_obj.classes_set.all()
37         all_class = models.Classes.objects.all()
38         return render(request,
39                       "set_classes.html",
40                       {"tea_class":tea_class,
41                        "all_class":all_class,
42                        "nid":nid
43                        }
44                       )
45     elif request.method == "POST":
46         nid = request.GET.get("nid")
47         cls_list = request.POST.getlist("ct")
48         tea_obj = models.Teachers.objects.filter(id=nid).first()
49         tea_obj.classes_set.set(cls_list)
50         return redirect("/teachers.html/")
teachers.py

HTML文件

① 班级

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <form action="/add_classes.html/" method="post">
 9         <p><input type="text" name="name"></p>
10         <input type="submit" value="提交">
11     </form>
12 </body>
13 </html>
add_classes.html
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <form action="/edit_classes.html/" method="post">
 9         <p><input type="text" name="cid" value="{{ obj.id }}" style="display: none"></p>
10         <p><input type="text" name="cname" value="{{ obj.name }}"></p>
11         <input type="submit" value="提交">
12     </form>
13 </body>
14 </html>
edit_classes.html
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <div>
 9         <a href="/add_classes.html/">添加</a>
10     </div>
11     <div>
12         <table border="1px">
13             <thead>
14                 <tr>
15                     <th>ID</th>
16                     <th>名称</th>
17                     <th>任课老师</th>
18                     <th>操作</th>
19                 </tr>
20             </thead>
21             <tbody>
22                 {% for row in cls_list %}
23                     <tr nid="{{ row.id }}">
24                         <td>{{ row.id }}</td>
25                         <td>{{ row.name }}</td>
26                         <td>
27                             {% for item in row.m.all %}
28                                 <spn>{{ item.name }}</spn>
29                             {% endfor %}
30                         </td>
31                         <td>
32                             <a href="/del_classes.html?nid={{ row.id }}">删除</a>
33                             |
34                             <a href="/edit_classes.html?nid={{ row.id }}">编辑</a>
35                             |
36                             <a href="/set_teachers.html?nid={{ row.id }}">分配老师</a>
37                         </td>
38                     </tr>
39                 {% endfor %}
40             </tbody>
41         </table>
42     </div>
43 </body>
44 </html>
get_classes.html
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <form action="/set_teachers.html?nid={{ nid }}" method="post">
 9         <select name="ts" multiple size="10">
10             {% for row in all_teacher %}
11                 {% if row in cls_teacher %}
12                     <option value="{{ row.id }}" selected>{{ row.name }}</option>
13                 {% else %}
14                     <option value="{{ row.id }}">{{ row.name }}</option>
15                 {% endif %}
16             {% endfor %}
17         </select>
18         <input type="submit" value="提交">
19     </form>
20 </body>
21 </html>
set_teachers.html

② 老师

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <form action="/add_teachers.html/" method="post">
 9         <p><input type="text" name="name"></p>
10         <input type="submit" value="提交">
11     </form>
12 </body>
13 </html>
add_teachers.html
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <form action="/edit_teachers.html/" method="post">
 9         <p><input type="text" name="tid" value="{{ obj.id }}" style="display: none"></p>
10         <p><input type="text" name="tname" value="{{ obj.name }}"></p>
11         <input type="submit" value="提交">
12     </form>
13 </body>
14 </html>
edit_teachers.html
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <div>
 9         <a href="/add_teachers.html/">添加</a>
10     </div>
11     <div>
12         <table border="1px">
13             <thead>
14                 <tr>
15                     <th>ID</th>
16                     <th>姓名</th>
17                     <th>任课班级</th>
18                     <th>操作</th>
19                 </tr>
20             </thead>
21             <tbody>
22                 {% for row in tea_list %}
23                     <tr nid="{{ row.id }}">
24                         <td>{{ row.id }}</td>
25                         <td>{{ row.name }}</td>
26                         <td>
27                             {% for item in row.classes_set.all %}
28                                 <spn>{{ item.name }}</spn>
29                             {% endfor %}
30                         </td>
31                         <td>
32                             <a href="/del_teachers.html?nid={{ row.id }}">删除</a>
33                             |
34                             <a href="/edit_teachers.html?nid={{ row.id }}">编辑</a>
35                             |
36                             <a href="/set_classes.html?nid={{ row.id }}">分配班级</a>
37                         </td>
38                     </tr>
39                 {% endfor %}
40             </tbody>
41         </table>
42     </div>
43 </body>
44 </html>
get_teachers.html
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <form action="/set_classes.html?nid={{ nid }}" method="post">
 9         <select name="ct" multiple size="10">
10             {% for row in all_class %}
11                 {% if row in tea_class %}
12                     <option value="{{ row.id }}" selected>{{ row.name }}</option>
13                 {% else %}
14                     <option value="{{ row.id }}">{{ row.name }}</option>
15                 {% endif %}
16             {% endfor %}
17         </select>
18         <input type="submit" value="提交">
19     </form>
20 </body>
21 </html>
set_classes.html

③ 学生

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <h3>添加用户</h3>
 9     <form action="/add_students.html/" method="post">
10         <p><input type="text" name="username" placeholder="用户名"></p>
11         <p><input type="text" name="age" placeholder="年龄"></p>
12         <p>
13             男:<input type="radio" name="gender" value="1">
14             女:<input type="radio" name="gender" value="0">
15         </p>
16         <p>
17             <select name="cs">
18                 {% for row in cls_list %}
19                     <option value="{{ row.id }}">{{ row.name }}</option>
20                 {% endfor %}
21             </select>
22         </p>
23         <input type="submit" value="提交">
24     </form>
25 </body>
26 </html>
add_students.html
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <h3>添加用户</h3>
 9     <form action="/add_students.html/" method="post">
10         <p><input type="text" name="sid" value="{{ stu_obj.id }}" style="display: none"></p>
11         <p><input type="text" name="username" value="{{ stu_obj.username }}"></p>
12         <p><input type="text" name="age" value="{{ stu_obj.age }}"></p>
13         <p>
14             {% if stu_obj.gender %}
15                 男:<input type="radio" name="gender" value="1" checked>
16                 女:<input type="radio" name="gender" value="0">
17             {% else %}
18                 男:<input type="radio" name="gender" value="1">
19                 女:<input type="radio" name="gender" value="0" checked>
20             {% endif %}
21         </p>
22         <p>
23             <select name="cs">
24                 {% for row in cls_list %}
25                     {% if row.id == stu_obj.cs.id %}
26                         <option value="{{ row.id }}" selected>{{ row.name }}</option>
27                     {% else %}
28                         <option value="{{ row.id }}">{{ row.name }}</option>
29                     {% endif %}
30                 {% endfor %}
31             </select>
32         </p>
33         <input type="submit" value="提交">
34     </form>
35 </body>
36 </html>
edit_students.html
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <div>
 9         <a href="/add_students.html/">添加</a>
10     </div>
11     <div>
12         <table border="1px">
13             <thead>
14                 <tr>
15                     <th>ID</th>
16                     <th>姓名</th>
17                     <th>年纪</th>
18                     <th>性别</th>
19                     <th>班级</th>
20                     <th>操作</th>
21                 </tr>
22             </thead>
23             <tbody>
24                 {% for row in stu_list %}
25                     <tr nid="{{ row.id }}">
26                         <td>{{ row.id }}</td>
27                         <td>{{ row.username }}</td>
28                         <td>{{ row.age }}</td>
29                         <td>{{ row.gender }}</td>
30                         <td>{{ row.cs.name }}</td>
31                         <td>
32                             <a href="/del_students.html?nid={{ row.id }}">删除</a>
33                             |
34                             <a href="/edit_students.html?nid={{ row.id }}">编辑</a>
35                         </td>
36                     </tr>
37                 {% endfor %}
38             </tbody>
39         </table>
40     </div>
41 </body>
42 </html>
get_students.html