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

      

  • 相关阅读:
    Android 四大组件学习之ContentProvider三
    JavaScript遍历table
    codecombat之KithGard地牢19-37关代码分享
    【学习笔记】信息系统项目管理-项目採购管理-合同分类
    【记中关村.西北食府.兰州拉面】诗一首
    HDU 1042.N!【高精度乘法】【8月24】
    Mac安装MySQL
    Best Time to Buy and Sell Stock I && II && III
    UVALive 6663 Count the Regions 离散+bfs染色_(:зゝ∠)_
    ftk学习记(combox篇)
  • 原文地址:https://www.cnblogs.com/zenan/p/8979284.html
Copyright © 2011-2022 走看看