您好,登錄后才能下訂單哦!
本篇內容介紹了“python Django在開發中如何使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
使用virtualenv隔離開發環境
使用pip管理項目依賴,主要就是一個小技巧,使用pipfreeze>requirements.txt來保存依賴的模塊和版本
使用gitignore.io這個網站提供的.gitignore文件管理代碼庫文件
打包和發布
項目的打包和發布用的Docker,Django項目的Dockerfile特別簡單:
FROMpython:3.5
COPY./requirements.txt/src
WORKDIR/src
RUNpipinstall-rrequirements.txt
COPY./src
EXPOSE
CMDuwsgi--http:--wsgi-file<path/to/wsgi.py>
這一個Dockerfile模板可以通吃80%的Django項目了。
日志配置
既然用Docker,就放棄了把日志寫入文件,直接寫到標準輸出。
#settings.py
#...
LOGGING={
'version':1,
'disable_existing_loggers':False,
'formatters':{
'verbose':{
'format':'[application]%(levelname)s%(asctime)s%(module)s%(message)s'
}
},
'handlers':{
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
'stream':sys.stdout,
'formatter':'verbose'
},
},
'loggers':{
'app':{
'handlers':['console'],
'level':'DEBUG',
'propagate':True,
},
},
}
新版本的uwsgi已經可以把webapp的日志收集起來輸出到標準輸出里面了。如果需要收集、管理日志的話,就是用Docker日志收集工具,直接收集Docker容器的日志即可。
自動化測試
既然是純后端項目,工程師完全可以通過自動化測試來檢測自己的代碼。Django本身對測試提供了很好的支持,可以通過sqlite來搭建測試數據庫,還有基于內存的緩存,做測試不會增加對其他系統的依賴。開發起來事半功倍。
除了要寫自動化測試代碼,還要能統計測試覆蓋率。目前我們用的是coverage.py這個工具,說實話沒有node.js的istanbul好用,輸出的報告沒有Istanbul詳細和易讀。不過用來檢查“死代碼”還是夠用的。
針對http代碼的測試
有些項目需要對接的第三方系統比較多,比如微信認證、支付、短信等常見的,可能還有其他一些垂直業務領域的系統。這部分接口對接的代碼,也應該納入到測試當中,畢竟Python作為腳本語言,代碼很容易出現錯誤。
這塊一般是用responses這個模塊來mockhttp請求。
定時任務
有一些Django項目需要做一些定時任務。首先,絕對不用linux內置的crontab。主要的問題還是維護的成本高,沒準哪天就把這個配置給忘了。
我們現在方式都是借助DjangoCommand的功能,將定時任務封裝成一個command。在這個command里面運行一個scheduler。就像下面這樣:
importschedule
fromdjango.core.management.baseimportBaseCommand
classCommand(BaseCommand):
defhandle(self,*args,**kwargs):
schedule.every(45).minutes.do(do_this)
schedule.every().day.at('04:00').do(do_that)
whileTrue:
schedule.run_pending()
time.sleep(1)
“python Django在開發中如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。