• 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()
    

      

  • 相关阅读:
    人月神话阅读笔记01
    HTML中常用meta整理
    前端开发中的SEO
    webGL学习笔记
    webGL 学习教程
    HTMl5的sessionStorage和localStorage
    Validform使用
    gulp详细入门教程
    gulp.spriteSmith使用
    gulp.spritesmith修改px为rem单位
  • 原文地址:https://www.cnblogs.com/zenan/p/8979284.html
Copyright © 2020-2023  润新知