django的数据库操作回顾

1、数据库操作
- 单表操作
- all
- filter
models.tb.objects.filter(id=123)

dic = {‘id‘: 123, ‘age__gt‘: 3}
models.tb.objects.filter(**dic)
- count
- order_by
...
- 一对多
# id name
1 河北
2 广东
3 山东
class Province(models.Model):
name = models.CharField(max_length=32,)
# nid = models.Intergar(unique=True) # 唯一

# id name pro
1 东莞 2
2 深圳 2
3 惠州 2
4 河源 2
5 泰安 3
6 青岛 3
7 济南 3
8 张家口 1
9 邢台 1
class City(models.Model):
name = models.CharField(max_length=32)
pro = models.ForeignKey("Province", to_filed=‘id‘)
默认是关联Province的id,我们这样就可以关联Province表的指定字段,如果关联某个表得指定字段,那么这个表的指定字段必须要设置为唯一unique=True)

1、 正向查找,通过有foreignkey的表查找
result = models.City.objects.all() 对象
result[0].pro.name

models.City.objects.all().values(‘id‘,‘name‘,‘pro_id‘,‘pro__id‘,‘pro__name‘) 字典
models.City.objects.all().values_list(‘id‘,‘name‘,‘pro_id‘,‘pro__id‘,‘pro__name‘) 列表

2、反向查找,通过没有foreignkey的表查找

result = models.a3 = pro.city_set.all().objects.values(‘id‘,‘name‘, ‘city__name‘)

result = models.Province.objects.all()
result[0] # 获取河北
result[0].city_set.all() # 获取河北下的所有市 张家口 、邢台

for pro in result:
a1 = pro.id
a2 = pro.name
a3 = pro.city_set.all()
这里获取的某个省的所有的市

a3 = pro.city_set.filter(id_lt)
city_set后可以使用filter,all等方法

print(a1,a2,a3)
=====> 多对多即使基于一对多来构造

原文地址:https://www.cnblogs.com/bainianminguo/p/8925747.html

时间: 2024-10-25 19:23:53

django的数据库操作回顾的相关文章

Django模型-数据库操作

前言 前边记录的URLconf和Django模板全都是介绍页面展示的东西,也就是表现层的内容.由于Python先天具备简单而强大的数据库查询执行方法,Django 非常适合开发数据库驱动网站. 这篇开始,进入到了Django模型,也就是数据库操作. 自带 Sqlite3 数据库查询方式 为了简单,使用Python自带的Sqlite3数据库进行实例说明. 先看一个传统的数据库操作示例: 1 from django.shortcuts import render 2 import sqlite3 3

Django与数据库操作

Django与数据库操作 数据库连接的方法 web 框架 django --- 自己内部实现 (ORM) + pymysql(连接) Flask,tornado --- pymysql SQLArchemy (ORM) ORM 操作简单 (只把对象和类的操作 生成对应的sql语句) 创建,修改 数据表的时候简单 速度比原生的sql慢 -- 先转换成sql语句 原生sql执行会快 脚本运行Django的ORM操作数据库 import os,sys import django sys.path.ap

django models 数据库操作

django models 数据库操作 创建模型 实例代码如下 from django.db import models class School(models.Model): pass class Message(models.Model): pass class Teacher(models.Model): pass class Student(models.Model): GENDER_CHOICES = ( ('male', "男"), ('female', "女&q

Django基础--数据库操作

Django中的模型(model)本质是数据库中的表(table),当作为开发者时,总会涉及到数据库的操作,而Django中也提供了一些函数,实现sql语句中的增删改查: 惯例,先看模型: 1 # coding:utf-8 2 import django.utils.timezone as timezone 3 from django.db import models 4 from blast_service.models import DiskInfo 5 # Create your mode

django学习-数据库操作接口API--(CRUD)

初试API(数据库操作接口CRUD) 现在我们进入交互式python命令行,尝试一下django为你创建的各种API,通过以下命令打开python命令行: py -3 manage.py shell进入python命令行 D:\django\mysite>py -3 manage.py shell Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32 Type &quo

Django之数据库操作

1.创建model表,在setting中添加app名称.配置数据 from django.db import models class userinfo(models.Model): #如果没有models.AutoField,默认会创建一个id的自增列 name = models.CharField(max_length=30) email = models.EmailField() memo = models.TextField() 运行:python manage.py makemigra

django 的数据库操作

Python代码 class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def __unicode__(self): return self.name class Author(models.Model): name = models.CharField(max_length=50) email = models.EmailField() def __unico

Django笔记-数据库操作(多对多关系)

1.项目结构 2.关键代码: data6.settings.py INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', ) DATABASES = { 'default': {

Django—ORM数据库操作

---恢复内容开始--- 一.orm介绍 1 ORM即Object Relational Mapping,全称对象关系映射. 优点: 1 不用写sql,不会sql的人也可以写程序 2 开发效率高 2 缺点: 1 可能sql的效率低 3 如何使用: 如果连接mysql:在setting里配置: 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '127.0.0.1', 'PORT': 3306, 'USER': 'root', '