十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
Django教程
Python下有許多款不同的 Web 框架。Django是重量級選手中最有代表性的一位。許多成功的網(wǎng)站和APP都基于Django。
Django是一個開放源代碼的Web應(yīng)用框架,由Python寫成。
Django遵守BSD版權(quán),初次發(fā)布于2005年7月, 并于2008年9月發(fā)布了第一個正式版本1.0 。
Django采用了MVC的軟件設(shè)計模式,即模型M,視圖V和控制器C。
一、前言
Celery是一個基于python開發(fā)的分布式任務(wù)隊列,如果不了解請閱讀筆者上一篇博文Celery入門與進(jìn)階,而做python WEB開發(fā)最為流行的框架莫屬Django,但是Django的請求處理過程都是同步的無法實現(xiàn)異步任務(wù),若要實現(xiàn)異步任務(wù)處理需要通過其他方式(前端的一般解決方案是ajax操作),而后臺Celery就是不錯的選擇。倘若一個用戶在執(zhí)行某些操作需要等待很久才返回,這大大降低了網(wǎng)站的吞吐量。下面將描述Django的請求處理大致流程(圖片來源于網(wǎng)絡(luò)):
請求過程簡單說明:瀏覽器發(fā)起請求-->請求處理-->請求經(jīng)過中間件-->路由映射-->視圖處理業(yè)務(wù)邏輯-->響應(yīng)請求(template或response)
二、配置使用
celery很容易集成到Django框架中,當(dāng)然如果想要實現(xiàn)定時任務(wù)的話還需要安裝django-celery-beta插件,后面會說明。需要注意的是Celery4.0只支持Django版本>=1.8的,如果是小于1.8版本需要使用Celery3.1。
配置
新建立項目taskproj,目錄結(jié)構(gòu)(每個app下多了個tasks文件,用于定義任務(wù)):
taskproj ├── app01 │ ├── __init__.py │ ├── apps.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── tasks.py │ └── views.py ├── manage.py ├── taskproj │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── templates