django数据库基本操作-增删改查(tip)-基本
补充:django外键保存
#外键保存
form_data = Form_Data()
project, is_created = Project_Name.objects.get_or_create(name=select_text)
form_data.project = project
1、插入数据
Python代码
>>> from books.models import Publisher
>>> p1 = Publisher(name='Apress', address='2855 Telegraph Avenue',
... city='Berkeley', state_province='CA', country='U.S.A.',
... website='http://www.apress.com/')
>>> p1.save()
>>> from books.models import Publisher
>>> p1 = Publisher(name='Apress', address='2855 Telegraph Avenue',
... city='Berkeley', state_province='CA', country='U.S.A.',
... website='http://www.apress.com/')
>>> p1.save()
2、查询
Python代码
>>> Publisher.objects.all()
[<Publisher: Apress>, <Publisher: O'Reilly>]
[python] view plain copy
>>> Publisher.objects.all()
[<Publisher: Apress>, <Publisher: O'Reilly>]
获取单个对象:
Python代码
>>> Publisher.objects.get(name="Apress")
<Publisher: Apress>
[python] view plain copy
>>> Publisher.objects.get(name="Apress")
<Publisher: Apress>
如果结果是多个对象或者没有返回结果则会抛出异常
3、条件
筛选:
Python代码
>>> Publisher.objects.filter(name='Apress')
[<Publisher: Apress>]
>>> Publisher.objects.filter(name='Apress')
[<Publisher: Apress>]
Python代码
>>> Publisher.objects.filter(name__contains="press")
[<Publisher: Apress>]
[python] view plain copy
>>> Publisher.objects.filter(name__contains="press")
[<Publisher: Apress>]
__contains部分会被Django翻译成LIKE语句
排序:
Python代码
>>> Publisher.objects.order_by("name")
[<Publisher: Apress>, <Publisher: O'Reilly>
python] view plain copy
>>> Publisher.objects.order_by("name")
[<Publisher: Apress>, <Publisher: O'Reilly>]
相当于 order by name asc
Python代码
>>> Publisher.objects.order_by("-name")
[python] view plain copy
>>> Publisher.objects.order_by("-name")
加个负号相当于 order by name desc
限制返回数据:
Python代码
>>> Publisher.objects.order_by('name')[0]
<Publisher: Apress>
[python] view plain copy
>>> Publisher.objects.order_by('name')[0]
<Publisher: Apress>
相当于 limit 1
Python代码
>>> Publisher.objects.order_by('name')[0:2]
[python] view plain copy
>>> Publisher.objects.order_by('name')[0:2]
相当于 OFFSET 0 LIMIT 2
4、更新
Python代码
>>> Publisher.objects.filter(id=52).update(name='Apress Publishing')
[python] view plain copy
>>> Publisher.objects.filter(id=52).update(name='Apress Publishing')
Python代码
>>> p = Publisher.objects.get(name='Apress') #先查询
>>> p.name = 'Apress Publishing' #更新
>>> p.save() #保存
[python] view plain copy
>>> p = Publisher.objects.get(name='Apress') #先查询
>>> p.name = 'Apress Publishing' #更新
>>> p.save() #保存
5、删除
Python代码
>>> p = Publisher.objects.get(name="O'Reilly")
>>> p.delete()
[python] view plain copy
>>> p = Publisher.objects.get(name="O'Reilly")
>>> p.delete()
Python代码
>>> Publisher.objects.filter(country='USA').delete()
[python] view plain copy
>>> Publisher.objects.filter(country='USA').delete()
django数据库基本操作-增删改查(tip)-基本的更多相关文章
- Django数据库操作(增删改查)
Django数据库操作(增删改查) 创建数据库中的一个表 class Business(models.Model): #自动创建ID列 caption = models.CharField(max_l ...
- django数据库的增删改查
正常启动服务安装数据库cmd命令:python manage.py makemigrations 创建用户 在pxm里面会有一个py文件..这就是生成了表结构cmd命令:python manage.p ...
- django数据库操作-增删改查-多对多关系以及一对多(外键)关系
一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model代码: class Person(models.Model); name = models.CharField('作者姓名' ...
- 转: django数据库操作-增删改查-多对多关系以及一对多(外键)关系
原文链接:http://blog.csdn.net/u010271717/article/details/22044415 一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model ...
- django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面
1.为test.DB数据库预先创建下面数据 1 张三 16 2015-01-02 12 李四 17 2015-01-04 13 王五 14 ...
- Django基础学习四_数据库的增删改查
今天主要学习两个东西 1.如何对数据库做增删改查 2.如果将数据库中的数据用html的方式返回到前台 一.对数据库中增删改查操作 1.首先需要先见表,见表的方法我们在“http://www.cnblo ...
- MongoDB的ObjectId和基本操作增删改查(3)
ObjectId 基本操作增删改查 增: insert 介绍: mongodb存储的是文档,. 文档是json格式的对象. 语法: db.collectionName.insert(document) ...
- 【转载】通过JDBC对MySQL数据库的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- python测试开发django-13.操作数据库(增删改查)
前言 django的models模块里面可以新增一张表和字段,通常页面上的数据操作都来源于数据库的增删改查,django如何对msyql数据库增删改查操作呢? 本篇详细讲解django操作mysql数 ...
随机推荐
- BZOJ 1040 ZJOI 2008 骑士 基环树林+树形DP
题目大意:有一些骑士.他们每个人都有一个权值.可是因为一些问题,每个骑士都特别讨厌还有一个骑士.所以不能把他们安排在一起.求这些骑士所组成的编队的最大权值和是多少. 思路:首先貌似是有向图的样子,可是 ...
- 关于 while(1)和for(;;)效率问题的一点想法
这几天看到好友的文章关于while(1)和for(;;)效率的讨论,手痒说了两句.回头一寻思,自己也仅仅是判断.没有做不论什么实验,我们就看看这两种写法究竟有什么差别: 实验环境:IAR EWARM ...
- 错误号:1364 错误信息:Field 'platId' doesn't have a default value
1. 错误描写叙述 错误号:1364 错误信息:Field 'platId' doesn't have a default value insert into `use`.`t_platform_sc ...
- java中写sql语句的小小细节
来源于:http://www.cnblogs.com/reine98/p/6180472.html 看如下一条sql语句 1 2 3 4 5 6 String sql="SELECT * F ...
- JS中函数的 this 各种指向
this是js的一个关键字,随着函数使用场合不同,this的值会发生变化.但是总有一个原则,那就是this指的是调用函数的那个对象. 情形1:如果一个函数中有this,但是它没有被上一级的对象所调用, ...
- 【LeetCode】133. Clone Graph (3 solutions)
Clone Graph Clone an undirected graph. Each node in the graph contains a label and a list of its nei ...
- iOS - UnitTests 单元测试
1.UnitTests 在计算机编程中,单元测试(又称为模块测试, Unit Testing)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.程序单元是应用的最小可测试部件.在过程化编 ...
- 关于ftpshell脚本中mget中去除多余交互式提示的方法
默认情况下ftp里面的交互式提示是开启的,平常如果下载多个文件时,这种提示很让人烦,如果是在shell脚本里面要从ftp服务器上一次mget多个文件,写个交互式很麻烦,最好是把这个交互式提示关掉. 进 ...
- ListView回收机制相关分析
最初的分析文档为word,该文档是直接从word文档发布,布局未做详细调整,凑合看吧. 所用源码版本为最新的Android 4.4.2(API 19).更新中…… ListView回收机制相关分析 ...
- 工作总结 EntityFramework中出现DateTime2异常的完美解决办法
EntityFramework中出现DateTime2异常的完美解决办法 今天在使用entityframework往数据库插入数据的时候,突然出现了一个数据类型转换异常的问题: System.Da ...