Django实现数据库中表格的增删查改

it2026-08-17  7

1.urls.py

"""Django_demo1 URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/2.1/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import path from app01.views import classes from app01.views import students # from django.urls import re_path urlpatterns = [ path('admin/', admin.site.urls), path('classes.html/', classes.get_classes), path('add_classes', classes.add_classes), path('del_classes', classes.del_classes), path('edit_classes', classes.edit_classes), path('students.html/', students.get_students), path('add_students', students.add_students), path('del_students', students.del_students), path('edit_students', students.edit_students), ]

2.models.py

from django.db import models class Classes(models.Model): ''' 班级表 ''' title = models.CharField(max_length=32) m = models.ManyToManyField('Teachers') class Teachers(models.Model): ''' 老师表 ''' name = models.CharField(max_length=32) ''' cid tid 1 1 2 1 1 1 ''' # class C2T(models.Model): # cid = models.ForeignKey() # tid = models.ForeignKey() class Student(models.Model): username = models.CharField(max_length=32) age = models.IntegerField() gender = models.BooleanField() cs = models.ForeignKey('Classes', on_delete=models.CASCADE)

3.classes.py

from django.shortcuts import render, redirect from app01 import models def get_classes(request): cls_list = models.Classes.objects.all() return render(request, 'get_classes.html', {'cls_list': cls_list}) def add_classes(request): if request.method == 'GET': return render(request, 'add_classes.html') if request.method == 'POST': title = request.POST.get('title') models.Classes.objects.create(title=title) return redirect('/classes.html') def del_classes(request): nid = request.GET.get('nid') models.Classes.objects.filter(id=nid).delete() return redirect('classes.html/') def edit_classes(request): if request.method == 'GET': nid = request.GET.get('nid') obj = models.Classes.objects.filter(id=nid).first() return render(request, 'edit_classes.html', {'obj': obj}) if request.method == 'POST': nid = request.POST.get('nid') title = request.POST.get('title') models.Classes.objects.filter(id=nid).update(title=title) return redirect('/classes.html')

4.students.py

from django.shortcuts import render, redirect from app01 import models def get_students(request): students_list = models.Student.objects.all() return render(request, 'get_students.html', {'students_list': students_list}) def del_students(request): nid = request.GET.get('nid') models.Student.objects.filter(id=nid).delete() return redirect('/students.html') def add_students(request): if request.method == 'GET': cs_list = models.Classes.objects.all() return render(request, 'add_students.html', {'cs_list': cs_list}) if request.method == 'POST': id = request.POST.get('id') username = request.POST.get('username') age = request.POST.get('age') gender = request.POST.get('gender') cs_id = request.POST.get('cs_id') models.Student.objects.create(id=id, username=username, age=age, gender=gender, cs_id=cs_id) return redirect('/students.html') def edit_students(request): if request.method == 'GET': nid = request.GET.get('nid') # print(nid) class_list = models.Classes.objects.all() obj = models.Student.objects.filter(id=nid).first() return render(request, 'edit_students.html', {'obj': obj, 'class_list': class_list}) if request.method == 'POST': id = request.POST.get('id') username = request.POST.get('username') age = request.POST.get('age') gender = request.POST.get('gender') cs_id = request.POST.get('cs_id') models.Student.objects.filter(id=id).update(id=id, username=username, age=age, gender=gender, cs_id=cs_id) return redirect('/students.html')

5.add_classes.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="add_classes" method="post"> {% csrf_token %} <input type="text" name="title" > <input type="submit" value="提交"> </form> </body> </html>

6.add_students.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/add_students" method="post"> {% csrf_token %} <input type="text" name="id" placeholder="id"> <input type="text" name="username" placeholder="username"> <input type="text" name="age" placeholder="age"> 男<input type="radio" name="gender" value="0"> 女<input type="radio" name="gender" value="1"> <select name="cs_id" > {% for row in cs_list %} <option value="{{ row.id }}">{{ row.title }}</option> {% endfor %} </select> {# <input type="text" name="cs_id" placeholder="cs_id">#} <input type="submit" value="提交"> </form> </body> </html>

7.edit_classes.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="edit_classes" method="post"> {% csrf_token %} <input type="text" name="nid" value="{{ obj.id }}" style="display:none;" > <input type="text" name="title" value="{{ obj.title }}"> <input type="submit" value="提交"> </form> </body> </html>

8.edit_classes.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/edit_students" method="post"> {% csrf_token %} <input type="text" name="id" value="{{ obj.id }}"> <input type="text" name="username" value="{{ obj.username }}"> <input type="text" name="age" value="{{ obj.age }}"> 男<input type="radio" name="gender" value="0"> 女<input type="radio" name="gender" value="1"> <select name="cs_id"> {% for row in class_list %} <option value="{{ row.id }}">{{ row.title }}</option> {% endfor %} </select> <input type="submit" value="提交"> </form> </body> </html>

9.get_classes.html

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <div> <a href="/add_classes">添加</a> </div> <div> <table border="1"> <thead> <tr> <th>ID</th> <th>名称</th> <th>操作</th> </tr> </thead> <tbody> {% for row in cls_list %} <tr> <td> {{ row.id }} </td> <td> {{ row.title }} </td> <td>{# <form action="/del_classes?{{ row.id }}" method="get">#}{# <input type="submit" value="删除">#}{# </form>#} <a href="/del_classes?nid={{ row.id }}" >删除</a> | <a href="/edit_classes?nid={{ row.id }}">编辑</a> </td> </tr> {% endfor %} </tbody> </table> </div></body></html>

10.get_students.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div> <a href="/add_students">添加</a> </div> <div> <table border="1"> <tr> <th>id</th> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>班级</th> <th>操作</th> </tr> <tbody> {% for row in students_list %} <tr> <td> {{ row.id }} </td> <td> {{ row.username }} </td> <td> {{ row.age }} </td> <td> {% if row.gender == 0 %} 男 {% endif %} {% if row.gender == 1 %} 女 {% endif %} </td> <td> {{ row.cs.title }} </td> <td> <a href="/del_students?nid={{ row.id }}">删除</a> | <a href="/edit_students?nid={{ row.id }}">编辑</a> </td> </tr> {% endfor %} </tbody> </table> </div> </body> </html>

 

  

 

 

转载于:https://www.cnblogs.com/CK85/p/10187095.html

相关资源:利用layui框架实现数据的显示,增删改查等一系列操作.zip
最新回复(0)