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>

  

 

Django实现数据库中表格的增删查改的更多相关文章

  1. Java连接MySQL数据库及简单的增删查改操作

    主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...

  2. Yii2使用数据库操作汇总(增删查改、事务)

    查询 //1.简单查询 $admin=Admin::model()->findAll($condition,$params); $admin=Admin::model()->findAll ...

  3. 使用webapi绑定layui数据表格完整增删查改记录

    因为每次给layui数据表格绑定数据或者类似操作的时候  总要重新做一遍 而且忘记很多东西 所以干脆写博客把相关东西记录下来 便于查阅和修正 以下是一个完整的数据表格i项目的增删改查案例 先来看后台 ...

  4. django与mysql实现简单的增删查改

    模型定义 from django.db import models class Grades(models.Model): g_name = models.CharField(max_length=2 ...

  5. jdbc 可处理数据库事物的通用增删查改函数

    首先弄清四种隔离级别的和三种数据并发 之间的关系 通用查询函数 //使用PreparedStatement实现对不同表的通用的返回一个对象的查询操作 //使用泛型机制,参数里先传入一个类的类型 pub ...

  6. Django笔记&教程 5-1 基础增删查改

    Django 自学笔记兼学习教程第5章第1节--基础增删查改 点击查看教程总目录 第四章介绍了模型类models.Model和创建模型,相当于介绍了数据库表和如何创建数据库表. 这一章将介绍如何使用模 ...

  7. 4.在MVC中使用仓储模式进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...

  8. MongoDB数据库(二):增删查改

    MongoDB数据库的增删查改 1.插入数据 语法: db.集合名称.insert(document) db.table_name.insert({name:'gj',gender:1}) db.ta ...

  9. C# SQLite 创建数据库的方法增删查改语法和命令

    SQLite介绍 SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准. SQLite数据库官方主页 ...

随机推荐

  1. 利用python 学习数据分析 (学习四)

    内容学习自: Python for Data Analysis, 2nd Edition         就是这本 纯英文学的很累,对不对取决于百度翻译了 前情提要: 各种方法贴: https://w ...

  2. Python中的匿名函数lambda的用法

    一.lambda函数的简介  对lambda函数,它其实是一个类似于def的函数,只不过lambda是一个不需要定义函数名的匿名函数.当我们在有些时候,需要做一些简单的数学计算时,如果定义一个def函 ...

  3. 多事实表 SQL实现和SSAS中MDX实现的差异

    如图,资产负债视图是事实表,损益表也是事实表.都包含年.月.组织.账簿信息. SQL如何实现呢? 简单粗暴,事实事实表串事实表,Full Join select 损益视图.年 ,损益视图.年月 ,损益 ...

  4. Windows网络服务渗透攻击分类

    网络服务渗透攻击分为三类 一.针对于windows系统自带的网络服务的渗透攻击 1.针对于NetBIOS的攻击 NetBIOS以运行在TCP/IP系统中的NBT协议来实现,具体包括在UDP的137端口 ...

  5. html5: 复制到剪贴板 clipboard.js

    1.使用clipboard.min.js工具,引用此js 注意事项: IOS微信网页开发中,若使用此工具来开发复制功能,则需要在超链接/按钮上新增 onclick=" " 2.cl ...

  6. 修改docker的port端口映射

    原以为修改docker的端口映射只是一条命令就可以搞定,结果发现没那么简单,记录一下以防忘记.1. 查看需要修改的容器,记住container iddocker ps -a2. 停止容器docker ...

  7. vs2010 编译 boost1.65.1

    vs2010编译boos1.65.1注意选项 vs2010 不支持 c99 ,string.c和debugger.c 变量定义顺序位置报错,改变顺序即可. debugger.c va_copy 在c8 ...

  8. Win10 VS2015 静态编译Qt5.6.2源码

    由于VS2015需要CRT等拓展组件,因此把内部编写的工具软件以静态发布,固需要编译Qt源码.Qt5.6.2版本,VS2015,Win10 1.安装python,perl,下载jom 2.改文件com ...

  9. Ambari集群里操作时典型权限问题put: `/home/bigdata/1.txt': No such file or directory的解决方案(图文详解)

    不多说,直接上干货! 问题详情 明明put该有的文件在,可是怎么提示的是文件找不到的错误呢? 我就纳闷了put: `/home/bigdata/1.txt': No such file or dire ...

  10. HTML5 表单 中

    input 属性 autofocus 页面加载时自动获得焦点 required   非空字段输入框 placeholder 提供一种提示(hint),输入域为空时显示. pattern 规定验证inp ...