zoukankan      html  css  js  c++  java
  • django数据库基本操作-增删改查(tip)-基本

    补充:django外键保存

                    #外键保存
                    form_data = Form_Data()
                    project, is_created = Project_Name.objects.get_or_create(name=select_text)
                    form_data.project = project

    1、插入数据

    1 Python代码
    2 >>> from books.models import Publisher  
    3 >>> p1 = Publisher(name='Apress', address='2855 Telegraph Avenue',  
    4 ...     city='Berkeley', state_province='CA', country='U.S.A.',  
    5 ...     website='http://www.apress.com/')  
    6 >>> p1.save()  
    1 >>> from books.models import Publisher  
    2 >>> p1 = Publisher(name='Apress', address='2855 Telegraph Avenue',  
    3 ...     city='Berkeley', state_province='CA', country='U.S.A.',  
    4 ...     website='http://www.apress.com/')  
    5 >>> p1.save()  

    2、查询

    1 Python代码
    2 >>> Publisher.objects.all()  
    3 [<Publisher: Apress>, <Publisher: O'Reilly>]  
    1 [python] view plain copy
    2 >>> Publisher.objects.all()  
    3 [<Publisher: Apress>, <Publisher: O'Reilly>]  

    获取单个对象:

    1 Python代码
    2 >>> Publisher.objects.get(name="Apress")  
    3 <Publisher: Apress>  
    1 [python] view plain copy
    2 >>> Publisher.objects.get(name="Apress")  
    3 <Publisher: Apress>  

    如果结果是多个对象或者没有返回结果则会抛出异常

    3、条件

    筛选:

    1 Python代码
    2 >>> Publisher.objects.filter(name='Apress')  
    3 [<Publisher: Apress>] 
    1 >>> Publisher.objects.filter(name='Apress')  
    2 [<Publisher: Apress>]  
    1 Python代码
    2 >>> Publisher.objects.filter(name__contains="press")  
    3 [<Publisher: Apress>]  
    1 [python] view plain copy
    2 >>> Publisher.objects.filter(name__contains="press")  
    3 [<Publisher: Apress>] 

    __contains部分会被Django翻译成LIKE语句

    排序:

    1 Python代码
    2 >>> Publisher.objects.order_by("name")  
    3 [<Publisher: Apress>, <Publisher: O'Reilly>
    1 python] view plain copy
    2 >>> Publisher.objects.order_by("name")  
    3 [<Publisher: Apress>, <Publisher: O'Reilly>]  

    相当于 order by name asc

    1 Python代码
    2 >>> Publisher.objects.order_by("-name")  
    1 [python] view plain copy
    2 >>> Publisher.objects.order_by("-name") 

    加个负号相当于 order by name desc


    限制返回数据:

    1 Python代码
    2 >>> Publisher.objects.order_by('name')[0]  
    3 <Publisher: Apress>  
    1 [python] view plain copy
    2 >>> Publisher.objects.order_by('name')[0]  
    3 <Publisher: Apress>

    相当于 limit 1

    1 Python代码
    2 >>> Publisher.objects.order_by('name')[0:2]  
    1 [python] view plain copy
    2 >>> Publisher.objects.order_by('name')[0:2]  

    相当于 OFFSET 0 LIMIT 2

    4、更新

    1 Python代码
    2 >>> Publisher.objects.filter(id=52).update(name='Apress Publishing')  
    1 [python] view plain copy
    2 >>> Publisher.objects.filter(id=52).update(name='Apress Publishing')  
    1 Python代码
    2 >>> p = Publisher.objects.get(name='Apress') #先查询  
    3 >>> p.name = 'Apress Publishing' #更新  
    4 >>> p.save()  #保存  
    1 [python] view plain copy
    2 >>> p = Publisher.objects.get(name='Apress') #先查询  
    3 >>> p.name = 'Apress Publishing' #更新  
    4 >>> p.save()  #保存  

    5、删除

    1 Python代码
    2 >>> p = Publisher.objects.get(name="O'Reilly")  
    3 >>> p.delete()  
    1 [python] view plain copy
    2 >>> p = Publisher.objects.get(name="O'Reilly")  
    3 >>> p.delete()  
    1 Python代码
    2 >>> Publisher.objects.filter(country='USA').delete() 
    1 [python] view plain copy
    2 >>> Publisher.objects.filter(country='USA').delete()  
  • 相关阅读:
    eclipse maven构建的java web工程项目 在修改了工程项目名时,tomcat启动异常java.lang.IllegalArgumentException: Can't convert argument:null
    maven 编译打包时,明明类文件没有问题,却提示错误:未结束的字符串字面值,maven-compiler-plugin:2.3.2
    maven 结合mybaits整合框架,打包时mapper.xml文件,mapper目录打不进war包去问题
    jsp到java后台中文乱码问题
    JVM学习笔记(四):类加载机制
    JVM学习笔记(三):类文件结构
    JVM学习笔记(二):垃圾收集
    内存映像分析工具Eclipse Memory Analyzer
    JVM学习笔记(一):Java内存区域
    Java变量初始化之后的默认值问题
  • 原文地址:https://www.cnblogs.com/zhaoyingjie/p/6438864.html
Copyright © 2011-2022 走看看