django正續(xù)或者倒序查庫實例
Django的ORDER_BY查詢集,升序和降序
如何訂購由降我的查詢在Django按日期設(shè)定?
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”前表示降序排列。升序是不言而喻的。
我們不必過濾器之前添加的所有()()。這將仍然有效,但你只需要添加所有()當(dāng)你想從根本上查詢集的所有對象。
更多關(guān)于這個在這里:
3.
它的工作原理去除
.all()
:
Reserved.objects.filter(client=client_id).order_by('-check_in')
補充知識:os.getcwd()、sys.path[0]、sys.argv[0]和__file__的區(qū)別
要分清這幾個的區(qū)別與使用條件,實際測試一下是最準(zhǔn)確的。
設(shè)計測試方法:
一個主模塊用來運行,一個子模塊用來被主模塊調(diào)用
主模塊路徑:
/Users/stephen/Documents/code/test_dir/01test
子模塊路徑:
/Users/stephen/Documents/code/test_dir/02test
運行模塊的路徑:
/Users/stephen/Documents/code/test_dir/01test/001_test
ok 現(xiàn)在編寫兩模塊代碼
子模塊 submodule.py
import os
import sys
def child_test():
print('sub os.getcwd():{}'.format(os.getcwd()))
print('sub sys.path[0]:{}'.format(sys.path[0]))
print('sub sys.argv[0]:{}'.format(sys.argv[0]))
print('sub __file__:{}'.format(__file__))
if __name__ == '__main__':
chid_test()
主模塊 mainmodule.py
import os
import sys
import submodule
def main():
print('main os.getcwd():{}'.format(os.getcwd()))
print('main sys.path[0]:{}'.format(sys.path[0]))
print('main sys.argv[0]:{}'.format(sys.argv[0]))
print('main __file__:{}'.format(__file__))
submodule.child_test()
if __name__ == '__main__':
main()
目錄結(jié)構(gòu)
├── 01test
│ ├── 001_test # 運行目錄
│ └── mainmodule.py # 主模塊
└── 02test
└── submodule.py # 被調(diào)用模塊
ok 來看看結(jié)果
Traceback (most recent call last): File "../mainmodule.py", line 3, in <module> import submodule ModuleNotFoundError: No module named 'submodule'
我去,出現(xiàn)了點小狀況
原因是系統(tǒng)找不到該模塊的路徑,我們來人工添加一個路徑
在主模塊中前面添加
sys.path.append('/Users/stephen/Documents/code/test_dir/02test/')
再來試試 - -
結(jié)果如下:
main os.getcwd():/Users/stephen/Documents/code/test_dir/01test/001_test main sys.path[0]:/Users/stephen/Documents/code/test_dir/01test main sys.argv[0]:../mainmodule.py main __file__:../mainmodule.py sub os.getcwd():/Users/stephen/Documents/code/test_dir/01test/001_test sub sys.path[0]:/Users/stephen/Documents/code/test_dir/01test sub sys.argv[0]:../mainmodule.py sub __file__:/Users/stephen/Documents/code/test_dir/02test/submodule.py
結(jié)合目錄結(jié)構(gòu)看就清楚了
├── 01test
│ ├── 001_test # 運行目錄
│ └── mainmodule.py # 主模塊
└── 02test
└── submodule.py # 被調(diào)用模塊
os.getcwd() 指的是運行程序的目錄 (絕對路徑)
sys.path[0] 主要模塊的目錄 (絕對路徑)
sys.argv[0] 運行模塊時,pyhton 后面的參數(shù)
__file__ 這個就有點奇怪了,主模塊顯示的相對路徑,而被調(diào)用模塊卻用的絕對路徑
__file__ 還是有點疑慮,于是去 stack overflow(click to)看到了這句話,如下:
So, if you are outside the part of sys.path that contains the module, you'll get an absolute path. If you are inside the part of sys.path that contains the module, you'll get a relative path.
If you load a module in the current directory, and the current directory isn't in sys.path, you'll get an absolute path.
If you load a module in the current directory, and the current directory is in sys.path, you'll get a relative path.
意思大致是:
如果你(你所在的當(dāng)前目錄)不在sys.path的范圍里,你會得到絕對路徑,反之,你會得到相對路徑
如果你在當(dāng)前目錄加載模塊,并且當(dāng)前目錄在sys.path 里, 你會得到相對路徑。
對比上面的結(jié)果,符合。
不過我們還是應(yīng)該再來驗證下。我們把當(dāng)前路徑換到子模塊下
├── 01test
│ ├── 001_test
│ └── mainmodule.py # 主模塊
└── 02test # 當(dāng)前目錄
└── submodule.py # 被調(diào)用模塊
結(jié)果如下:
main os.getcwd():/Users/stephen/Documents/code/test_dir/02test main sys.path[0]:/Users/stephen/Documents/code/test_dir/01test main sys.argv[0]:../01test/mainmodule.py main __file__:../01test/mainmodule.py sub os.getcwd():/Users/stephen/Documents/code/test_dir/02test sub sys.path[0]:/Users/stephen/Documents/code/test_dir/01test sub sys.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
結(jié)果如下:
main os.getcwd():/Users/stephen/Documents/code/test_dir/02test main sys.path[0]:/Users/stephen/Documents/code/test_dir/01test main sys.argv[0]:/Users/stephen/Documents/code/test_dir/01test/mainmodule.py main __file__:/Users/stephen/Documents/code/test_dir/01test/mainmodule.py sub os.getcwd():/Users/stephen/Documents/code/test_dir/02test sub sys.path[0]:/Users/stephen/Documents/code/test_dir/01test sub sys.argv[0]:/Users/stephen/Documents/code/test_dir/01test/mainmodule.py sub __file__:/Users/stephen/Documents/code/test_dir/02test/submodule.py soga!
終于弄清楚了,突然有種小興奮啊
總結(jié)一下:
os.getcwd() 指的是當(dāng)前目錄,絕對路徑
sys.path[0] sys.path 指的是path,sys.path[0]為主模塊目錄的絕對路徑,在模塊運行的時候被自動添加進(jìn)去
sys.argv[0] 就是你運行時 python 后面跟的參數(shù)
__file__ 表示所在模塊文件的路徑,和系統(tǒng)找到該模塊的方式有關(guān),你是用絕對路徑去加載該模塊,那么__file__就為絕對模塊文件路徑,如果你給系統(tǒng)提供相對路徑去加載該模塊,那么改文件路徑為相對路徑
以上這篇django正續(xù)或者倒序查庫實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python之關(guān)于數(shù)組和列表的區(qū)別及說明
這篇文章主要介紹了python之關(guān)于數(shù)組和列表的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
python爬蟲模擬瀏覽器訪問-User-Agent過程解析
這篇文章主要介紹了python爬蟲模擬瀏覽器訪問-User-Agent過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12
基于spring boot 日志(logback)報錯的解決方式
今天小編就為大家分享一篇基于spring boot 日志(logback)報錯的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python 實現(xiàn)隨機(jī)數(shù)詳解及實例代碼
這篇文章主要介紹了Python 實現(xiàn)隨機(jī)數(shù)詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下2017-04-04

