zoukankan      html  css  js  c++  java
  • django ORM

    django ORM 单独使用

    import os
    import sys
    import django
    
    pathname = os.path.dirname(os.path.abspath(__file__))
    sys.path.append(pathname)
    
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MxShop.settings")
    
    django.setup()
    
    from apps.users.models import UserProfile
    
    
    if __name__ == "__main__":
    
        user = UserProfile.objects.all()
        for i in user:
            print(i.name,i.gender,i.email)
    

    关键点在于需要将项目的根目录设置为模块目录。

    QuerySet API

    Person.objects.all() # 查询所有
    Person.objects.all()[:10] 切片操作,获取10个人,不支持负索引,切片可以节约内存,不支持负索引,后面有相应解决办法,第7条
    Person.objects.get(name="abc") # 名称为 abc 的一条,多条会报错
     
    get是用来获取一个对象的,如果需要获取满足条件的一些人,就要用到filter
    Person.objects.filter(name="abc") # 等于Person.objects.filter(name__exact="abc") 名称严格等于 "abc" 的人
    Person.objects.filter(name__iexact="abc") # 名称为 abc 但是不区分大小写,可以找到 ABC, Abc, aBC,这些都符合条件
     
    Person.objects.filter(name__contains="abc") # 名称中包含 "abc"的人
    Person.objects.filter(name__icontains="abc") #名称中包含 "abc",且abc不区分大小写
     
    Person.objects.filter(name__regex="^abc") # 正则表达式查询
    Person.objects.filter(name__iregex="^abc")# 正则表达式不区分大小写
     
    # filter是找出满足条件的,当然也有排除符合某条件的
    Person.objects.exclude(name__contains="WZ") # 排除包含 WZ 的Person对象
    Person.objects.filter(name__contains="abc").exclude(age=23) # 找出名称含有abc, 但是排除年龄是23岁的
    

      

    Person.objects.count() # 查询数量 select count(*)
    Person.objects.all().distinct(*field_names) # 根据字段去重
    Person.objects.all().exists() # 检查是否有对象,boolean

    原生sql

    from django.db import connection
     
    cursor = connection.cursor()
    nums = cursor.execute(sql)
    cursor.fetchone()
    cursor.fetchall()
    

      

  • 相关阅读:
    JS小技巧
    创建 SpringBoot 项目一直 reading pom.xml
    idea无法创建springboot/springcloud项目的问题
    Spring Data Jpa执行流程分析
    JPA插入时出现(save the transient before flushing) 解决办法
    Spring Data Jpa多表动态查询
    SpringDataJpa在一对多关系映射时出现StackOverflowError
    spring-data-jpa报错org.hibernate.LazyInitializationException
    Jpa配置
    swiper轮播插件--动态修改属性值
  • 原文地址:https://www.cnblogs.com/zenan/p/8979284.html
Copyright © 2011-2022 走看看