zoukankan      html  css  js  c++  java
  • Django_单表查询

    一、测试文件运行Django项目 (自己建的test.py文件要配置一下)

    # django 的文件可以直接使用, 怎么使用项目的文件???(msgi.py 文件中的)
    1. 加载项目配置文件 
    	import os
    	os.environ.setdefault("DJANGO_SETTINGS_MODULE","项目名.settings")
    2. 启动Django
    	import django
    	django.setup()
    3. 使用项目中的各个模块
    	from app.models import User
    

    数据库的单表查询(简单的增删改查)

    1. 增
    	User.objects.create(name='owen',age=10)
    	
    	user = User(name='owen',age=10)
    	user.save()
    
    2. 查
    	User.objects.filter(name='owen')   # 结果是一个list
    	
    	user = User.objects.get(id=1)   # 只能操作有且只有一条数据的记录(不存在或多个都报错)
    
    3. 改
    	User.objects.filer(name='owen').update(name='ooo')
    	
    	users = User.objects.filter(name='owen')
    	for user in users:
    		user.name='owen'
    		user.save()
    
    4. 删
    	User.objects.filter(name='owen').delete()
    	
    	user = User.objects.filter(name='ooo').first()
    	user.delete
    

    单表操作函数

    1. all(): 查所有的list,支持正向索引取值[i], 支持索引切片[m:n]
    	user_list = User.objects.all()
    	QuerySet对象都有query属性
    	user_list.query  (内部运行的sql语句)
    	
    2. filter(): 查满足条件的所有结果list
    3. get(): 满足条件的唯一对象obj, 否则抛异常
    4. exclude()排除: 查询满足条件的对立面的所有结果list
    5. order_by: 按指定字段进行排序后的list, 'tag_name' 正序,  '-tag_name'降序
    	list = User.objects.order_by('id')     order_by('-id')  反序
    6. reverse(): 反转排序查询所有的list
    	User.objects.order_by('id').reverse()   和排序连用
    7. count():统计查询的list 的长度
    	num = User.objects.all().count()
    	
    8. first():返回查询结果中的第一个对象obj
    9. last():返回查询结果中的最后一个对象obj
    
    10. exist(): 判断查询结果是否存在,布尔值 (True or False)
    	res = User.objects.all().exists()   sql:优化limit1
    11. values(): 按指定字段们,返回存放包含字段们字典的列表list
    	可切片
    	list = User.objects.values('name','pwd')
    	[{'name':'egon','pwd':123},{'name':'alex','pwd':123}]
    	
    12: values_list(): 和values类似,返回存放数据的元组的列表list
    	[('egon',123),('alex',123)]
    13. distinct(): 从查询结果中踢出重复字段(和values结合使用)
    	list = User.objects.all().distinct()   # id 不一样,不去重
    	list = User.objects.values('name','age').distinct()
    

    单表的模糊查询

    User.objects.filter(可选模糊查询)(id_gt=3)
    # 整型相关
    age_exact = 8 : 确切匹配8
    age_in = [8,10]
    age__gt=8  # 大于8
    age__gte=8  # 大于等于8
    age__lt=8  # 小于8
    age__lte=8  # 小于等于8
    age__range=[8, 10]  # 8到10之间
    age_isnull= 0|1  # 0: 不为空  1: 为空
    
    # 字符串相关
    name__startswith  # 后方模糊匹配
    name__endswith  # 前方模糊匹配
    name__contains  # 前后方均模糊匹配
    name__regex  # 正则匹配
    name__istartswith  # 不区分大小写后方模糊匹配(i开头就是不区分大小写)
    	User.objects.filter(name_regex="a{0,}")
    	User.objects.filter(name_regex="[a-zA-Z0-9]{1,})
    	
    	
    	
    # 时间相关
    birthday__year=2008  # 时间年份模糊匹配
    	
    
    
    
  • 相关阅读:
    错误:net::ERR_BLOCKED_BY_CLIENT
    ui-grid angularjs
    angular Js 回车处理
    百度云盘-真实地址 F12 控制台
    Js 跨域CORS报错 Response for preflight has invalid HTTP status code 405
    angularjs 路由参数
    AngularJs Angular数据类型判断
    Bootstrap+AngularJS对话框实例
    AngularJs表单自动验证
    IIS7.5上的REST服务的Put操作发生HTTP Error 405.0
  • 原文地址:https://www.cnblogs.com/Afrafre/p/12799193.html
Copyright © 2011-2022 走看看