补充: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)-基本的更多相关文章

  1. Django数据库操作(增删改查)

    Django数据库操作(增删改查) 创建数据库中的一个表 class Business(models.Model): #自动创建ID列 caption = models.CharField(max_l ...

  2. django数据库的增删改查

    正常启动服务安装数据库cmd命令:python manage.py makemigrations 创建用户 在pxm里面会有一个py文件..这就是生成了表结构cmd命令:python manage.p ...

  3. django数据库操作-增删改查-多对多关系以及一对多(外键)关系

    一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model代码: class Person(models.Model); name = models.CharField('作者姓名' ...

  4. 转: django数据库操作-增删改查-多对多关系以及一对多(外键)关系

    原文链接:http://blog.csdn.net/u010271717/article/details/22044415 一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model ...

  5. django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面

    1.为test.DB数据库预先创建下面数据 1    张三    16    2015-01-02    12    李四    17    2015-01-04    13    王五    14  ...

  6. Django基础学习四_数据库的增删改查

    今天主要学习两个东西 1.如何对数据库做增删改查 2.如果将数据库中的数据用html的方式返回到前台 一.对数据库中增删改查操作 1.首先需要先见表,见表的方法我们在“http://www.cnblo ...

  7. MongoDB的ObjectId和基本操作增删改查(3)

    ObjectId 基本操作增删改查 增: insert 介绍: mongodb存储的是文档,. 文档是json格式的对象. 语法: db.collectionName.insert(document) ...

  8. 【转载】通过JDBC对MySQL数据库的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  9. python测试开发django-13.操作数据库(增删改查)

    前言 django的models模块里面可以新增一张表和字段,通常页面上的数据操作都来源于数据库的增删改查,django如何对msyql数据库增删改查操作呢? 本篇详细讲解django操作mysql数 ...

随机推荐

  1. 关闭xp防火墙

    在控制面版关闭防火墙 禁用“Security Center”服务 禁用“WindowsFirewall/InternetConnectionSharing(ICS)”服务 删除服务:开始运行CMD,命 ...

  2. sqlserver profiler 抓出来作业的代码 SQLAgent - TSQL JobStep,二进制作业名字转化为字段串作业名字,job_id

    sqlserver 中 profiler 抓出来不少是作业中的代码,applicationname 类似于 SQLAgent - TSQL JobStep (Job 0x94B9B5C016E8D94 ...

  3. eclipse 配置多个jdk(jre)

      eclipse 配置多个jdk(jre) CreateTime--2018年4月24日08:57:40 Author:Marydon 1.打开设置窗口 输入jre 2.点击"Add... ...

  4. 〖Linux〗Ubuntu13.04解决Chrome的flash中文乱码的问题。

    1. 安装flash sudo aptitude install flashplugin-installer 2. 禁用chrome自带的flash插件 在chrome浏览器中输入 chrome:// ...

  5. python之函数用法any()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法any() #any() #说明:如果iterable的任何元素不为0.''.Fals ...

  6. 我的硬盘安装ArchLinux+xorg+gnome+美化

    整个安装需要联接网络!现在的xorg为6.8.1,gnome为2.8.0                看了大家为了使用gnome,出现了那么多问题!这里我就推荐一个发行版,再安装上gnome2.8. ...

  7. HDUOJ--1865 1string

    1sting Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  8. python练习笔记——丑数的计算

    只包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数,另外1也不是丑数.——摘自百度百科 get_num = int(input("请您输入丑数的 ...

  9. Uri编码,包括javascript前端与C#服务器端

    URI编码的方法汇总 javascript中的编码有三种方法:escape.encodeURI.encodeURIComponent C#中编码的主要方法:HttpUtility.UrlEncode. ...

  10. android 自定义ViewSwipeBackHelper,实现左滑结束Activity

     https://github.com/Jude95/SwipeBackHelper Git上看到一个基于SwipeBackLayout的实现,可以让我们在使用过程中在不使用物理返回键的情况下舍去了返 ...