django单表操作,增、删、改、查
一、实现:增、删、改、查

1、获取所有数据显示在页面上
model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取出数据。
目的:通过classes(班级表数据库)里面的字段拿到对应的数据。
2、添加功能

配置url分发路由增加一个add_classes.html页面
写一个def add_classess函数
在前端写一个a标签,前端页面就可以看到一个添加链接,通过点这个a标签的链接跳转到一个新的add_classess页面
add_classess.html 页面中实现两个功能:
form表单 :返回给add_classess.html页面
input 输入框
input 提交按钮
接下来就要接收前端输入的数据:
if request.mothod='GET'
elif
request.mothod='POST'
request.POST.get('title') 拿到传过来的班级数据
然后通过创建的方式,写入对应的title字段数据库中
方法:models.Classes.objects.create(titile=title)
再返回给return redirect('/get_classes.html')
3、删除功能

配置url路由分发
加一个操作:
<th>操作</th>
一个a标签:
<a href="/del_classes.html?nid={{ row.id }}">删除</a>
实现删除操作,就是找到数据库中,对应的id字段(赋值给nid=id),删除掉这个ID字段这行数据,就实现了删除功能。
4、实现编辑功能

在get_classes.html里添加一个a标签
配置路由分发
写def edit_classes函数

班级这个输入框前面id不显示,因为id不能被用户修改,所以要隐藏。
根据id拿到这个对象(id 走get方法),id存放在请求头中发送过去的。
obj对象里面包含id 和 title ,走post方法,title是放在请求体中发送过去的
第一次:get拿到id
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})
第二次:post拿到id和title
elif request.method == 'POST':
nid = request.GET.get('nid')
title = request.POST.get('title')
models.Classes.objects.filter(id=nid).update(titile=title)
return redirect('/get_classes.html')
综合应用示例:

models.py
from django.db import models # Create your models here. class Classes(models.Model):
"""
班级表,男
"""
titile = models.CharField(max_length=32)
m = models.ManyToManyField("Teachers") class Teachers(models.Model):
"""
老师表,女
"""
name = models.CharField (max_length=32) """
cid_id tid_id
1
2
1
1000
"""
# class C2T(models.Model):
# cid = models.ForeignKey(Classes)
# tid = models.ForeignKey(Teachers) class Student(models.Model):
username = models.CharField(max_length=32)
age = models.IntegerField()
gender = models.BooleanField()
cs = models.ForeignKey(Classes)
urls.py
"""django_one URL Configuration The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.10/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from django.contrib import admin
from app01.views import classes urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^get_classes.html$', classes.get_classes),
url(r'^add_classes.html$', classes.add_classes),
url(r'^del_classes.html$', classes.del_classes),
url(r'^edit_classes.html$', classes.edit_classes), ]
classes.py
from django.shortcuts import render
from django.shortcuts import 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')
elif request.method == 'POST':
title = request.POST.get('titile')
models.Classes.objects.create(titile=title)
return redirect('/get_classes.html') def del_classes(request):
nid = request.GET.get('nid')
models.Classes.objects.filter(id=nid).delete()
return redirect('/get_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})
elif request.method == 'POST':
nid = request.GET.get('nid')
title = request.POST.get('title')
models.Classes.objects.filter(id=nid).update(titile=title)
return redirect('/get_classes.html')
get_classes.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
<a href="/add_classes.html">添加</a>
</div>
<div>
<table border="">
<thead>
<tr>
<th>ID</th>
<th>名称</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for row in cls_list %}
<tr>
<td>{{ row.id }}</td>
<td>{{ row.titile }}</td>
<td>
<a href="/del_classes.html?nid={{ row.id }}">删除</a>
|
<a href="/edit_classes.html?nid={{ row.id }}">编辑</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</body>
</html>
add_classes.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="add_classes.html" method="POST">
{% csrf_token %}
<input type="text" name="titile" />
<input type="submit" value="提交" />
</form>
</body>
</html>
edit_classes.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<form action="/edit_classes.html?nid={{ obj.id }}" method="POST">
{% csrf_token %}
<input type="text" name="title" value="{{ obj.titile }}" />
<input type="submit" value="提交"/>
</form>
</body>
</html>
django单表操作,增、删、改、查的更多相关文章
- django单表操作 增 删 改 查
一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取出数据. 目的:通过classes(班 ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- Django单表操作
一.数据库相关设置 配置ORM的loggers日志: # 配置ORM的loggers日志 LOGGING = { 'version': 1, 'disable_existing_loggers': F ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- Django(十)模型:django模型类对数据库的:增/删/改/查、自关联、管理器、元选项(指定表名)
一.插入.更新和删除 调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的插入和更新. 调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除. 二.自关联 ...
- Django学习笔记--数据库中的单表操作----增删改查
1.Django数据库中的增删改查 1.添加表和字段 # 创建的表的名字为app的名称拼接类名 class User(models.Model): # id字段 自增 是主键 id = models. ...
随机推荐
- Oracle 创建 Schema
-- 查看当前已有的用户 SELECT Username FROM dba_users; -- 创建临时 CREATE USER gzmpc IDENTIFIED BY PASSWORD; -- 授权 ...
- EF大数据批量添加性能问题(续)
昨天在园子里发了一篇如题的文章EF大数据批量添加性能问题,就引来一大堆的吐槽,我认为知识就应该这样分享出来,不然总以为自己很了不起:再说说昨天那篇文章,很多自认为很牛逼的人都评论说把SaveChang ...
- 使用Zend studio+WAMP来调试Wordpress后台的PHP程序的一些非常关键的信息(原创)
一.Zend studio代码格式化快捷键:选中代码,Ctrl+Shift+F( 注意,在英文输入发状态下使用!) .Zend studio实用快捷键 :http://www.zendstudio.n ...
- log4j日志文件配置
### set log levels ### ### debug (打印代码中logger.debug(xx)的信息)> info(打印代码中logger.info(xx)的信息) log4j. ...
- UVA-11383 Golden Tiger Claw (KM算法)
题目大意:一张可行二分图的权值以邻接矩阵的形式给了出来,现在要找每一个节点的可行顶标,使顶标和最小. 题目分析:直接用KM算法,结束后顶标之和最小...模板题. 代码如下: # include< ...
- 安装完Linux Mint后,发现系统中竟没有中文输入法
安装完Linux Mint后,发现系统中竟没有中文输入法,语言支持之后自动更新过程中有些安装包下载失败. 可以采取下面的方法安装上中文输入法. 1. 安装iBus: sudo add-apt-repo ...
- Linux下weblogic启动报错unable to get file lock的问题
非正常结束weblogic进程导致weblogic无法启动 由于先前服务器直接down掉了,所有进程都非正常的进行关闭了,也就导致了下次启动weblogic的时候报了以下错误:<2012-3-2 ...
- [ccf 4] 网络延时
网络延时 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机.交换机与电脑之间使用网络连接.交换机按层级设置,编号为1的交换机为根交换机,层级为 1.他的交换机都连 ...
- Beta阶段第2周/共2周 Scrum立会报告+燃尽图 09
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2389] 版本控制:https://git.coding.net/liuyy08 ...
- Centos7 安装JDK环境和Tomcat
Linux JDK 64位下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.ht ...