设计表

django之orm详解:

https://www.cnblogs.com/komorebi/p/11551089.html

在django中设计表

1.先在navicat中建好一个库

2.更改django配置中的DATABASES

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'day55','USER':'root','PASSWORD':'123','HOST':'127.0.0.1','POST':3306,'CHARSET':'utf8',}
}

settings.py

3.在创建项目中的文件下的migrations文件夹下,找到__init__.py

import pymysql
pymysql.install_as_MySQLdb()

4.去models文件中创建表

from django.db import models# Create your models here.
class Book(models.Model):title = models.CharField(max_length=255)price = models.DecimalField(max_digits=8,decimal_places=2)publish_data = models.DateField(auto_now_add=True)publish = models.ForeignKey(to='Publish')# 默认是跟publish的主键字段做的一对多外键关联authors = models.ManyToManyField(to='Author')# 虚拟字段  1.自动创建第三表  2.棒orm跨表查询class Publish(models.Model):name = models.CharField(max_length=32)addr = models.CharField(max_length=32)class Author(models.Model):name = models.CharField(max_length=64)age = models.IntegerField()author_detail = models.OneToOneField(to='AuthorDetail')class AuthorDetail(models.Model):phone = models.BigIntegerField()addr = models.CharField(max_length=64)

5.写数据库迁移命令

之后就开始填写数据,制作测试脚本

from django.test import TestCase# Create your tests here.
import osif __name__ == "__main__":os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day55.settings")import djangodjango.setup()"""写针对某一个.py文件的测试代码"""  
from app01 import models
 

 # publish_id  实际字段传数字models.Book.objects.create(title='围城里的男人',price=166.3,publish_data='2016-03-15',publish_id=1)# publish 虚拟字段直接传对象  pk 主键publish_obj = models.Publish.objects.filter(pk=1).first()models.Book.objects.create(title='红玫瑰',price=5555,publish=publish_obj)

# 改 将id=5 的书的作者id改为4
# 传数字
models.Book.objects.filter(pk=5).update(publish=4)

# 传对象  改为3
publish_obj = models.Publish.objects.filter(pk=3).first()
# print(publish_obj)
models.Book.objects.filter(pk=5).update(publish=publish_obj)

双下滑查询

查看orm内部sql语句的方法有哪些
1.如果是queryset对象 那么可以点query直接查看该queryset的内部sql语句
2.在django项目的配置文件中 配置一下参数即可实现所有的orm在查询的时候自动打印对应的sql语句

LOGGING = {'version': 1,'disable_existing_loggers': False,handlers': {'console':{'level':'DEBUG','class':'logging.StreamHandler',},},'loggers': {'django.db.backends': {'handlers': ['console'],'propagate': True,'level':'DEBUG',},}
}     

配置好之后,再执行任何对数据库进行操作的语句时,会自动将Django执行的sql语句打印到pycharm终端上

除了配置外,还可以通过一点.query即可查看查询语句

转载于:https://www.cnblogs.com/komorebi/p/11550812.html

day55 django 模型层,orm连表操作相关推荐

  1. Django基础五之Django模型层(二)多表操作

    Django基础五之Django模型层(二)多表操作 一 创建模型 表和表之间的关系 一对一.多对一.多对多 # 作者表 比较常用的信息放在这个表中 class Author(models.Model ...

  2. python代码函数字符查询宝典书籍_Django基础五之django模型层(一)单表操作

    二 单表操作 一.创建表 创建模型 创建名为book的app,在book下的models.py中创建模型: from django.db importmodels#Create your models ...

  3. Django模型层的多表操作(2)

    一基于双划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接模型(model) ...

  4. Django模型层之单表操作

    MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库.ORM是"对象-关系-映射 ...

  5. Django–模型层orm查询

    文章目录 Django–模型层orm查询 一.单表查询(增.删.改.查) 基本查询 下划线查询 二.外键字段(增.删.改.查) 一对多 多对多 三.多表查询 多表查询的方式 正反向的概念 基于对象的跨 ...

  6. Django框架的模型层之多表操作

    目录 一 创建模型 二 表记录的增删改 一对多 多对多 三.基于对象的跨表查询 一对一查询(Author 与 AuthorDetail) 一对多查询(publish与book) 多对多查询 (Auth ...

  7. Django基础5.1,模型层(二)多表操作

    Django5.1 创建模型 建立下列模型 # 作者表 class Author(models.Model):name=models.CharField( max_length=32)age=mode ...

  8. Django 学习 之ORM多表操作

    一.创建模型 1.模型关系整理 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建 ...

  9. Django模型系统——ORM中跨表、聚合、分组、F、Q

    核心知识点: 1.明白表之间的关系 2.根据关联字段确定正反向,选择一种方式 在Django的ORM种,查询既可以通过查询的方向分为正向查询和反向查询,也可以通过不同的对象分为对象查询和Queryse ...

最新文章

  1. OpenCV安全屏障摄像机Security Barrier Camera的实例(附完整代码)
  2. 【DP】和谐的奶牛(jzoj 1750)
  3. LeetCode MySQL 1142. 过去30天的用户活动 II
  4. java url重写 session_Java Web学习之Cookie和Session的深入理解
  5. 五大软件设计原则学习笔记2——开放封闭原则
  6. HDFS-HA-federation的机制和功能组件
  7. c语言 结构体的,c语言之结构体
  8. 中国专业开发者最多,最受 Web 服务青睐,Java 8 为最受欢迎版本 | 2020 年 Java 开发现状大调查...
  9. [Java] 蓝桥杯ALGO-2 算法训练 最大最小公倍数
  10. js距离米转换为千米_泰禾中央广场+恒大未来城双盘大兴,8.4米层高“空中别墅”来袭...
  11. 销量之王,去年程序员最爱看的技术书就是它
  12. 20175212 《Java程序设计》第2周学习总结
  13. 暗时间--BY刘未鹏
  14. 2019杭州上城区公办小学学区划分
  15. 贝叶斯新闻分类实战项目详解
  16. 论文翻译 | TOOD:《TOOD: Task-aligned One-stage Object Detection》详细解读
  17. 如何查看UE的ENDC组合能力
  18. 简析BlockingQueue
  19. 二维C语言,二维FFT,IFFT,c语言实现
  20. 文章如何在paperpaper查重

热门文章

  1. 为什么他们不用996,却能做到“永不宕机”?
  2. 国内奇葩小学数学题横扫推特,老外被难哭了
  3. java 剪切音乐_怎么剪切一段音乐其中的片段
  4. js实现点击按钮切换图片功能_☆*往事随風*☆的博客
  5. book review----Philosophical Issues in Tourism (Aspects of Tourism)
  6. alin的学习之路:面试题 计算机网络相关
  7. cst计算rcs后如何导入matlab,用CST计算舰船RCS的问题?
  8. PEO-b-PTMPM的嵌段共聚物复合囊泡/具有pH响应性的纳米颗粒/卤化银纳米粒子/聚合物纳米
  9. 启信宝牵手国家队,征信服务进化再加速
  10. Presto (二) --------- Presto 安装