Django数据增删改查:

上课代码

from django.shortcuts import render,HttpResponse# Create your views here.
from app01 import modelsdef addBook(request):# 一对多的添加# 方式1#models.Book.objects.create(title="python",price=100,publishDate="2017-12-12",publish_id=1)//这是规定传值# 方式2# pubObj=models.Publish.objects.filter(name="人民出版社")[0]# models.Book.objects.create(title="python2",price=120,publishDate="2017-10-12",publish=pubObj)  # 关联的出版社对象这个比较灵活# 多对多的添加#book_obj=models.Book.objects.create(title="红楼梦", price=100, publishDate="2017-12-12", publish_id=2)# alex_obj=models.Author.objects.filter(name="alex")[0]# egon_obj=models.Author.objects.filter(name="egon")[0]# egon_obj=models.Author.objects.filter(name="yuan")[0]# print("======",book_obj.authorlist) # []#
    # authorList=models.Author.objects.all()#
    #
    # # 绑定多对多的关系#
    # #book_obj.authorlist.add(alex_obj,egon_obj)  # [alex_obj,egon_obj]#这个是添加可以列举的作者# book_obj.authorlist.add(*authorList)  # [alex_obj,egon_obj]#这个是添加不可列举的#   解除多对多的关系# book_obj=models.Book.objects.filter(title="红楼梦").first()# authorList=models.Author.objects.filter(id__lt=3)# print(book_obj.authorlist.remove(*authorList))#解除多对多关系的# 清除关系方法# book_obj = models.Book.objects.filter(title="红楼梦").first()# book_obj.authorlist.clear()这是清除关系的return HttpResponse("OK")
def query(request):# 一对多的查询# 查询linux这本书的出版社的地址?# linux_obj=models.Book.objects.filter(title="linux").first()#查出的是一个对象#
    # print(linux_obj.title)# print(linux_obj.price)# print(linux_obj.publishDate)#
    # print(linux_obj.publish.name)  # 与这本书对象关联的出版社对象直接点就行了# print(linux_obj.publish.addr)  # 与这本书对象关联的出版社对象# 人民出版社出版过的书籍的名字# publish_obj=models.Publish.objects.filter(name="人民出版社")[0]# print(publish_obj.bookList.all())  # 与这个出版社对象关联的所有书籍对象# 多对多的查询# 查询追风筝的人的所有作者的姓名和年龄# book_obj=models.Book.objects.filter(title="追风筝的人")[0]# print("=====",book_obj.authorlist.all()  )         #  与这本书关联的所有作者对象,集合对象# authorlist=book_obj.authorlist.all()#这个是多个的就用.all()# print(authorlist.values("name","age"))# 查询yuan出版过的所有书籍的名字和价格#author_yuan=models.Author.objects.get(name="yuan")#print(author_yuan.book_set.all())  # 与这个作者关联的所有书籍对象#print(author_yuan.bookList.all().values("title","price"))
   # 反向查找(一对多)   # publish_obj = models.Publish.objects.filter(name="人民出版社")[0]   # print(publish_obj.book_set.all().values("title","price"))#反向查找找到的是一个集合   #多对多反向查询(多对多)   # author_obj=models.Author.objects.filter(name="frank").first()    #print(author_obj.book_set.all().values("title","price"))
# 一对一关系查询# 正向查询# 查询手机号为456的作者的姓名
detail_obj=models.Author2Detail.objects.filter(tel="456").first()print(detail_obj.author.name)#  与tel="456"的Author2Detail关联的作者对象# 反向查询# 查询景丽洋的手机号author_obj=models.AuthorA.objects.filter(name="景丽洋").first()print(author_obj.author2detail.tel) # 789print(author_obj.abc.tel) # 789return HttpResponse("OK")

from django.db import models# Create your models here.class Book(models.Model):nid = models.AutoField(primary_key=True)title = models.CharField(max_length=32)publishDate = models.DateField()price = models.DecimalField(max_digits=5, decimal_places=2)wordNum=models.IntegerField(default=0)#增属性的默认值可以自己设置readNum=models.IntegerField(default=0)增属性的默认值可以自己设置publish=models.ForeignKey("Publish",related_name="bookList")authorlist=models.ManyToManyField("Author",related_name="bookList") # 多对多的关系,自动创建关系表def __str__(self):return self.titleclass Publish(models.Model):name = models.CharField(max_length=32)addr = models.CharField(max_length=32)def __str__(self):return self.nameclass Author(models.Model):name=models.CharField(max_length=32)age=models.IntegerField()def __str__(self):return self.nameclass AuthorA(models.Model):name=models.CharField(max_length=32)age=models.IntegerField()class Author2Detail(models.Model):tel=models.IntegerField()addr=models.CharField(max_length=32)author=models.OneToOneField("AuthorA",related_name="abc")# class Book2Author(models.Model):
#     book=models.ForeignKey("Book")
#     author=models.ForeignKey("Author")

views

from django.shortcuts import render, HttpResponse
from app01 import models# Create your views here.
def addBook(request):# pass#建立一对一的关系# models.Book.objects.create# 建立一对多关系# 方法一# models.Book.objects.create(title="python", publishDate="1998-10-27", price="233", publish_id=1)# 方法二# publish_obj=models.Publish.objects.filter(name="人民出版社").first()#获得是一个集合要变成一个对象# models.Book.objects.create(title="python", publishDate="1998-10-27", price="233", publish=publish_obj)# 建立多对多关系# author_obj1=models.Author.objects.filter(name="frank").first()# author_obj2=models.Author.objects.filter(name="egon").first()# book_obj=models.Book.objects.create(title="C", publishDate="1998-10-27", price="233", publish_id=2)# book_obj.authorlist.add(author_obj1,author_obj2)#建立多对多的关系最终版本# book_obj = models.Book.objects.create(title="C", publishDate="1998-10-27", price="233", publish_id=2)# authorList=models.Author.objects.all()# book_obj.authorlist.add(*authorList)# 解除关系的# book_obj=models.Book.objects.filter(title="C#").first()# author_obj=models.Author.objects.filter(name="frank").first()# print( book_obj.authorlist.remove(author_obj))# #清空关系# book_obj=models.Book.objects.filter(title="C#").first()# print( book_obj.authorlist.clear())return HttpResponse("ok")def query(request):# 正向查询# 一对多查询# 查询python的作者# book_obj=models.Book.objects.filter(title="python")[0]# print(book_obj.publish.name)# print(book_obj.publish.addr)# 多对多查询# book_obj=models.Book.objects.filter(title="C").first()# print(book_obj.authorlist.all().values("name","age"))# 反向查找(一对多)# publish_obj = models.Publish.objects.filter(name="人民出版社")[0]# print(publish_obj.book_set.all().values("title","price"))#反向查找找到的是一个集合#多对多反向查询(多对多)author_obj=models.Author.objects.filter(name="frank").first()print(author_obj.book_set.all().values("title","price"))# 一对一关系查询# 正向查询# 查询手机号为456的作者的姓名
detail_obj = models.Author2Detail.objects.filter(tel="456").first()print(detail_obj.author.name)  # 与tel="456"的Author2Detail关联的作者对象# 反向查询# 查询景丽洋的手机号author_obj = models.AuthorA.objects.filter(name="景丽洋").first()print(author_obj.author2detail.tel)  # 789#反向查询不用加_setprint(author_obj.abc.tel)  # 789return HttpResponse("查到了")

数据增删

models

from django.db import models# Create your models here.
class Book(models.Model):nid=models.AutoField(primary_key=True)title=models.CharField(max_length=32)publishDate=models.DateField()price=models.DecimalField(max_digits=5,decimal_places=2)publish=models.ForeignKey("Publish")authorlist=models.ManyToManyField("Author")def __str__(self):return  self.title
class Publish(models.Model):name=models.CharField(max_length=32)addr=models.CharField(max_length=32)def __str__(self):return  self.name
class Author(models.Model):name=models.CharField(max_length=32)age=models.IntegerField()def __str__(self):return  self.name
class AuthorDetail(models.Model):telphone=models.IntegerField()addr=models.CharField(max_length=32)author=models.OneToOneField("Author")def __str__(self):return self.addr

models代码

转载于:https://www.cnblogs.com/1a2a/p/7744935.html

Django之数据表增删改查相关推荐

  1. Spring Boot MyBatis Postgres 实现对数据表增删改查操作(采用注解方式)

    1.创建Java实体类 package com.example.server;public class SceneService {private String servicename;private ...

  2. django调用python脚本返回_Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境...

    单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的settin ...

  3. Django框架(八)--单表增删改查,在Python脚本中调用Django环境

    一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...

  4. Django 07. django框架模型之增删改查基本操作

    简介 django框架模型之数据库表增删改查基本操作 1. 生成数据库表结构         models.py #!/usr/bin/env python # -*- coding: utf-8 - ...

  5. vue修改数据连接数据库_vue实现数据的增删改查

    在管理员的一些后台页面里,个人中心里的数据列表里,都会有对这些数据进行增删改查的操作.比如在管理员后台的用户列表里,我们可以录入新用户的信息,也可以对既有的用户信息进行修改.在vue中,我们更应该专注 ...

  6. Vue+ElementUI纯前端技术实现对表格数据的增删改查

    Vue+ElementUI纯前端技术实现对表格数据的增删改查 页面展示效果 一.页面结构 分为三个部分 head body 以及script 一般我个人是在head中引入一些组件库 , 还有一些样式 ...

  7. SQL Server创建数据库和数据的增删改查

    SQL Server创建数据库和数据的增删改查 本文是针对数据的增删改查,数据的创建 首先我们使用命令创建sql server数据库 D盘新建一个文件夹DB use master go --创建数据库 ...

  8. Redis概述_使用命令对redis的数据进行增删改查_Jedis连接redis进行数据操作_redis进行数据缓存案例

    学习目标 redis 概念 下载安装 命令操作 1. 数据结构 持久化操作 使用Java客户端操作redis Redis 前言(从百度上抄的, 看看了解一下, 懒得排版了) 1. 概念: redis是 ...

  9. 双表查询java代码_多表增删改查

    [java]代码库package com.ww.service; import java.lang.reflect.Array; import java.sql.Connection; import ...

最新文章

  1. Qt中的QRadioButton
  2. BootStrap2学习日记16---选项卡内容
  3. Flask/Django/Tornado语法对比(持续更新中)
  4. SAP CRM里note界面默认语言的决定逻辑
  5. [转载] JAVA 构造函数及其重载
  6. Docker Compose安装以及入门
  7. Kaleidoscope for Mac(文件和图像比较工具)
  8. 如何应对项目现场EasyNVR视频平台内ini配置文件丢失的现象?
  9. vs2010最佳配色选择_2010年代35部最佳电影
  10. mysql mysql.sock_MySQL下mysql.sock丢失问题的解决[ubuntu, linux, mysqld.sock]
  11. C++内存泄漏及解决办法
  12. openpose handpose 人体关键点识别 关键点检测
  13. react 中样式写法
  14. 极端类别不平衡数据下的分类问题研究综述,终于有人讲全了!
  15. 上海家政圈已经这么卷了吗。。。
  16. cosmos官方nameservice测试项目详解(代码注释+官方文档错误纠正)
  17. 初识顶点/片元着色器
  18. 使用nw.js将网址打包生成exe可安装程序支持xp系统
  19. cuda的tip: nvcc的-arch,-code选项
  20. 面向ChatGPT编程有多牛逼

热门文章

  1. com.google.common.collect.Range 集合计算
  2. Windows开机自动运行软件目录
  3. Java8时间转换(LocalDateTime)代码实例
  4. vue 动态的修改样式
  5. ORACLE 索引失效的原因与解决
  6. avs3 ts格式封装 标准_超能课堂(204):多媒体容器格式变迁录
  7. three.js 坐标系、camera位置属性、点、线、面
  8. Android Error:Could not find lottie.jar
  9. 转 Xcode磁盘空间大清理
  10. Rails源码笔记-ActiveSupport-core_ext-array