django单表操作 增 删 改 查

时间:2021-09-30 00:34:47

一、实现:增、删、改、查

django单表操作 增 删 改 查

1、获取所有数据显示在页面上

model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取出数据。

目的:通过classes(班级表数据库)里面的字段拿到对应的数据。

2、添加功能

django单表操作 增 删 改 查

配置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、删除功能

django单表操作 增 删 改 查

配置url路由分发

加一个操作:

<th>操作</th>

一个a标签:

<a href="/del_classes.html?nid={{ row.id }}">删除</a>

实现删除操作,就是找到数据库中,对应的id字段(赋值给nid=id),删除掉这个ID字段这行数据,就实现了删除功能。

4、实现编辑功能

django单表操作 增 删 改 查

在get_classes.html里添加一个a标签

配置路由分发

写def edit_classes函数

django单表操作 增 删 改 查

班级这个输入框前面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')

综合应用示例:

django单表操作 增 删 改 查

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 1
1 2
6 1
1000 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单表操作 增 删 改 查的更多相关文章

  1. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  2. 好用的SQL TVP~~独家赠送&lbrack;增-删-改-查&rsqb;的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  3. iOS sqlite3 的基本使用&lpar;增 删 改 查&rpar;

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  4. iOS FMDB的使用&lpar;增&comma;删&comma;改&comma;查&comma;sqlite存取图片&rpar;

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  5. Django单表操作

    一.数据库相关设置 配置ORM的loggers日志: # 配置ORM的loggers日志 LOGGING = { 'version': 1, 'disable_existing_loggers': F ...

  6. ADO&period;NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存*程序调用 ADO.NET所有数据访 ...

  7. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  8. Django(十)模型:django模型类对数据库的:增&sol;删&sol;改&sol;查、自关联、管理器、元选项(指定表名)

    一.插入.更新和删除 调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的插入和更新. 调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除. 二.自关联 ...

  9. Django学习笔记--数据库中的单表操作----增删改查

    1.Django数据库中的增删改查 1.添加表和字段 # 创建的表的名字为app的名称拼接类名 class User(models.Model): # id字段 自增 是主键 id = models. ...

随机推荐

  1. bzoj3380&plus;3381&plus;3382&plus;3383 Usaco2004 Open

    四道比较水的题 T1:SPFA+状压 #include<stdio.h> #include<string.h> #include<algorithm> #inclu ...

  2. odoo&period;cli&period;main&lpar;&rpar;做了什么?

    先把代码贴过来 def main(): args = sys.argv[1:] # The only shared option is '--addons-path=' needed to disco ...

  3. BAT及各大互联网公司前端笔试面试题--Html&comma;Css篇

    注意 转载须保留原文链接(http://www.cnblogs.com/wzhiq896/p/5931347.html )作者:wangwen896 整理分享出来希望更多的前端er共同进步吧,不仅适用 ...

  4. 34 个使用 Raspberry Pi 的酷创意

    如果你手头有一个 Raspberry Pi(树莓派),你会拿它来做什么?或许以下 34 个如何使用 Raspberry Pi 的创意能够给你带来一些启发. Web 服务器 家庭自动化 BitTorre ...

  5. Hbase笔记——RowKey设计

    一).什么情况下使用Hbase 1)传统数据库无法承载高速插入.大量读取. 2)Hbase适合海量,但同时也是简单的操作. 3)成熟的数据分析主题,查询模式确立不轻易改变. 二).现实场景 1.电商浏 ...

  6. 0&lt&semi;&equals;i&lt&semi;iLen 在C&plus;&plus;中

    for( i=0;0<= i<2; i++)这样的话会出现什么错误呢? 一直循环下去, 因为i>=一直成立

  7. Ultra UltraEdit中取消提示:你要转换 File 为 DOS 格式吗?

    Ultra Edit中取消提示:文件可能不是DOS格式,你要转换 File 为 DOS 格式吗? UE 提示 取消取消这个提示: 高级 -> 配置 -> 文件处理 -> DOS/UN ...

  8. c&plus;&plus;随机排序容器中的元素

    在各种程序语言中都提供了将容器元素随机排序的shuffle方法,c++也不例外. 不过c++将shuffle放在了<algorithm>中而不是像其他语言一样在random里,同时c++1 ...

  9. Generate google sitemap xml

    方式一. XNamespace xNamespace = "http://www.sitemaps.org/schemas/sitemap/0.9"; XNamespace xht ...

  10. &lbrack;CodeChef-QUERY&rsqb;Observing the Tree

    题目大意: 给你一棵树,一开始每个点的权值都是0,要求支持一下三种操作: 1.路径加等差数列. 2.路径求和. 3.回到以前的某次操作. 强制在线. 思路: 树链剖分+主席树. 最坏情况下,n个点的树 ...