中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python Django在開發中如何使用

發布時間:2022-03-04 14:00:54 來源:億速云 閱讀:132 作者:iii 欄目:web開發

本篇內容介紹了“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在開發中如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜宾市| 原阳县| 上饶县| 奉化市| 黔西县| 康定县| 衡山县| 伊川县| 霍山县| 河津市| 甘德县| 四川省| 安达市| 平定县| 福泉市| 清新县| 衡水市| 永川市| 磐安县| 施秉县| 康保县| 滁州市| 台南县| 长兴县| 大渡口区| 扬州市| 丰都县| 伊金霍洛旗| 探索| 东城区| 杭锦旗| 济南市| 治县。| 射洪县| 镇坪县| 玛多县| 平凉市| 巴中市| 石门县| 射阳县| 沙田区|