django正续或者倒序查库实例
Django的ORDER_BY查询集,升序和降序
如何订购由降我的查询在Django按日期设定?
Reserved.objects.all().filter(client=client_id).order_by('check_in')
我只是想从降所有由check_in日期保留筛选。任何人都可以可以的想法?提前致谢
1.
Reserved.objects.all().filter(client=client_id).order_by('-check_in')
注意-前check_inDjango的
2.
Reserved.objects.filter(client=client_id).order_by('-check_in')
连字符“-”在“check_in”前表示降序排列。升序是不言而喻的。
我们不必过滤器之前添加的所有()()。这将仍然有效,但你只需要添加所有()当你想从根本上查询集的所有对象。
更多关于这个在这里:
3.
它的工作原理去除
.all()
:
Reserved.objects.filter(client=client_id).order_by('-check_in')
补充知识:os.getcwd()、sys.path[0]、sys.argv[0]和__file__的区别
要分清这几个的区别与使用条件,实际测试一下是最准确的。
设计测试方法:
一个主模块用来运行,一个子模块用来被主模块调用
主模块路径:
/Users/stephen/Documents/code/test_dir/01test
子模块路径:
/Users/stephen/Documents/code/test_dir/02test
运行模块的路径:
/Users/stephen/Documents/code/test_dir/01test/001_test
ok现在编写两模块代码
子模块submodule.py
importos importsys defchild_test(): print('subos.getcwd():{}'.format(os.getcwd())) print('subsys.path[0]:{}'.format(sys.path[0])) print('subsys.argv[0]:{}'.format(sys.argv[0])) print('sub__file__:{}'.format(__file__)) if__name__=='__main__': chid_test()
主模块mainmodule.py
importos importsys importsubmodule defmain(): print('mainos.getcwd():{}'.format(os.getcwd())) print('mainsys.path[0]:{}'.format(sys.path[0])) print('mainsys.argv[0]:{}'.format(sys.argv[0])) print('main__file__:{}'.format(__file__)) submodule.child_test() if__name__=='__main__': main()
目录结构
├──01test
│├──001_test#运行目录
│└──mainmodule.py#主模块
└──02test
└──submodule.py#被调用模块
ok来看看结果
Traceback(mostrecentcalllast): File"../mainmodule.py",line3,inimportsubmodule ModuleNotFoundError:Nomodulenamed'submodule'
我去,出现了点小状况
原因是系统找不到该模块的路径,我们来人工添加一个路径
在主模块中前面添加
sys.path.append('/Users/stephen/Documents/code/test_dir/02test/')
再来试试--
结果如下:
mainos.getcwd():/Users/stephen/Documents/code/test_dir/01test/001_test mainsys.path[0]:/Users/stephen/Documents/code/test_dir/01test mainsys.argv[0]:../mainmodule.py main__file__:../mainmodule.py subos.getcwd():/Users/stephen/Documents/code/test_dir/01test/001_test subsys.path[0]:/Users/stephen/Documents/code/test_dir/01test subsys.argv[0]:../mainmodule.py sub__file__:/Users/stephen/Documents/code/test_dir/02test/submodule.py
结合目录结构看就清楚了
├──01test
│├──001_test#运行目录
│└──mainmodule.py#主模块
└──02test
└──submodule.py#被调用模块
os.getcwd()指的是运行程序的目录(绝对路径)
sys.path[0]主要模块的目录(绝对路径)
sys.argv[0]运行模块时,pyhton后面的参数
__file__这个就有点奇怪了,主模块显示的相对路径,而被调用模块却用的绝对路径
__file__还是有点疑虑,于是去stackoverflow(clickto)看到了这句话,如下:
So,ifyouareoutsidethepartofsys.paththatcontainsthemodule,you'llgetanabsolutepath.Ifyouareinsidethepartofsys.paththatcontainsthemodule,you'llgetarelativepath.
Ifyouloadamoduleinthecurrentdirectory,andthecurrentdirectoryisn'tinsys.path,you'llgetanabsolutepath.
Ifyouloadamoduleinthecurrentdirectory,andthecurrentdirectoryisinsys.path,you'llgetarelativepath.
意思大致是:
如果你(你所在的当前目录)不在sys.path的范围里,你会得到绝对路径,反之,你会得到相对路径
如果你在当前目录加载模块,并且当前目录在sys.path里,你会得到相对路径。
对比上面的结果,符合。
不过我们还是应该再来验证下。我们把当前路径换到子模块下
├──01test
│├──001_test
│└──mainmodule.py#主模块
└──02test#当前目录
└──submodule.py#被调用模块
结果如下:
mainos.getcwd():/Users/stephen/Documents/code/test_dir/02test mainsys.path[0]:/Users/stephen/Documents/code/test_dir/01test mainsys.argv[0]:../01test/mainmodule.py main__file__:../01test/mainmodule.py subos.getcwd():/Users/stephen/Documents/code/test_dir/02test subsys.path[0]:/Users/stephen/Documents/code/test_dir/01test subsys.argv[0]:../01test/mainmodule.py sub__file__:/Users/stephen/Documents/code/test_dir/02test/submodule.py
是不是觉得有问题?幸亏我们测试了
突然想起我我运行mainmodule用的相对路径
像这样:
$python../01test/mainmodule.py
然后__file__就是相对路径的,如果我们换成绝对路径呢?
$python/Users/stephen/Documents/code/test_dir/01test/mainmodule.py
结果如下:
mainos.getcwd():/Users/stephen/Documents/code/test_dir/02test mainsys.path[0]:/Users/stephen/Documents/code/test_dir/01test mainsys.argv[0]:/Users/stephen/Documents/code/test_dir/01test/mainmodule.py main__file__:/Users/stephen/Documents/code/test_dir/01test/mainmodule.py subos.getcwd():/Users/stephen/Documents/code/test_dir/02test subsys.path[0]:/Users/stephen/Documents/code/test_dir/01test subsys.argv[0]:/Users/stephen/Documents/code/test_dir/01test/mainmodule.py sub__file__:/Users/stephen/Documents/code/test_dir/02test/submodule.py soga!
终于弄清楚了,突然有种小兴奋啊
总结一下:
os.getcwd()指的是当前目录,绝对路径
sys.path[0]sys.path指的是path,sys.path[0]为主模块目录的绝对路径,在模块运行的时候被自动添加进去
sys.argv[0]就是你运行时python后面跟的参数
__file__表示所在模块文件的路径,和系统找到该模块的方式有关,你是用绝对路径去加载该模块,那么__file__就为绝对模块文件路径,如果你给系统提供相对路径去加载该模块,那么改文件路径为相对路径
以上这篇django正续或者倒序查库实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。