数据库表结构生成完毕后,可以使用工具连接上去

在 app01_author 表创建基础记录

在 app01_publisher 表创建基础记录

添加 data_oper 方法

在 urls.py 文件上添加

from app01 import views

urlpatterns = [
....
path('data_oper/', views.data_oper),
]

ORM 增加方法

create 方式一

在 views.py 文件上添加

from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author def data_oper(req):
Book.objects.create(
title="hahaha",
price=2,
publication_date="2019-05-16",
publisher_id=1,
) return HttpResponse("Hello world")

浏览器访问 http://127.0.0.1:8000/data_oper/,成功生成一条记录

create 方式二

在 views.py 文件上修改

from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author def data_oper(req):
dic = { "title":"K8S", "price":1, "publication_date":"2019-05-02", "publisher_id":1 }
Book.objects.create(**dic) return HttpResponse("Hello world")

浏览器访问 http://127.0.0.1:8000/data_oper/,生成一条记录

save 方式一

from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author # Create your views here. def data_oper(req):
obj=Book(
title="Python",
price=99,
publication_date="2019-05-06",
publisher_id=1,
)
obj.save() return HttpResponse("Hello world")

save 方式二

from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author # Create your views here. def data_oper(req):
obj=Book()
obj.title="GO"
obj.price=90
obj. publication_date="2019-05-06"
obj.publisher_id=1
obj.save() return HttpResponse("Hello world")

外键一对多的(ForeignKey)

在 models.py 中 Book 表下定义外键为

publisher = models.ForeignKey(Publisher,on_delete=models.CASCADE)

方法一

在 views.py 文件上修改

from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author,Publisher # Create your views here. def data_oper(req):
pub_obj = Publisher.objects.get(id=1) # 取publish 表 id 为1 的值
dic = {"title": "Docker", "price": 88, "publication_date": "2019-05-05", "publisher": pub_obj}
Book.objects.create(**dic) return HttpResponse("Hello world")

方法二

在 views.py 文件上修改

from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author def data_oper(req):
dic = { "title":"K8S", "price":1, "publication_date":"2019-05-02", "publisher_id":1 } # 直接指定 publisher 外键值了,这里要加 _id
Book.objects.create(**dic) return HttpResponse("Hello world")

外键多对多的情况

正向查询

from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author,Publisher # Create your views here. def data_oper(req):
book=models.Book.objects.filter(id=1)[0]
authors=models.Author.objects.filter(id__gt=2)
book.authors.add(*authors) return HttpResponse("Hello world")

反向查询

from django.shortcuts import render, HttpResponse
from app01 import models
from app01.models import Book,Author,Publisher # Create your views here. def data_oper(req):
book = models.Book.objects.filter(id__gt=1)
authors = models.Author.objects.filter(id=1)[0]
authors.book_set.add(*book) return HttpResponse("Hello world")

双下划线(__)之单表条件查询

#    models.Book.objects.filter(id__lt=10,id__gt=1)   # 获取id大于1 且 小于10的值
#
# models.Book.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据
# models.Book.objects.exclude(id__in=[11, 22, 33]) # not in
#
# models.Book.objects.filter(title__contains="ven")
# models.Book.objects.filter(title__icontains="ven") # icontains大小写不敏感
#
# models.Book.objects.filter(id__range=[1, 2]) # 范围bettwen and

最新文章

  1. JSON.stringify()与JSON.parse()
  2. MacOS平台下@rpath在动态链接库中的应用
  3. drawing
  4. CSS3计数器的使用-遁地龙卷风
  5. composer--------初体验,如何安装,如何下载
  6. python解析json
  7. js将map转换成数组
  8. CodeForces 490C Hacking Cypher
  9. C# OpenFileDialog
  10. windows phone 8 开发系列(三)程序清单说明与配置
  11. C# 知识笔记
  12. How to get FlowLayoutPanel.AutoSize to work with FlowBreak
  13. CPU/寄存器/内存
  14. Protostuff自定义序列化(Delegate)解析
  15. text选中后displa出label内容
  16. C#启动进程之Process
  17. mysql 查看数据库中所有表的记录数
  18. RedHat升级Python到2.7.6
  19. 使用axios向后端传递数据,后端接收不到?
  20. 20165230 学习基础和C语言基础调查

热门文章

  1. hbase链接失败
  2. zz 机器学习系统或者SysML&DL笔记
  3. nginx 服务端口权限13的问题
  4. Oracle EBS 11i下载的软件如何制作成linux使用的iso文件
  5. [学习笔记] 网络最大流的HLPP算法
  6. CSP-S考前救急(考试前还是别复习了,事实证明复习了也没考到...
  7. CodeChef MAXDTREE(DP套DP)
  8. SpringBoot整合mybatis及注意事项
  9. Thinkpad S430 3364-A59 (笔记本型号)加内存条过程
  10. Git系列四之在本地服务器搭建gitlab仓库管理(centeros环境下)