本Blog來源於實際項目,所采用框架組合中,OpenCV實現算法主體、pybind11完成OpenCV的Python封裝、django提供Web應用服務,三者協同配合,共同實現“網絡后端調用OpenCV算法,解決特定問題”的目標。
一、Django的下載和測試
1、在管理員權限下,直接可以使用pip進行安裝。
pip3 install django
如果網絡正常,那么可以通過
pip3 show django
查看django版本和django安裝路徑:
2、創建一個django project
在空文件夾下,使用以下命令創建django project
django-admin.py startproject mysites
我們可以使用vscode來查看,其中較為關鍵的幾項:
![]() |
manage.py ----- Django項目里面的工具,通過它可以調用django shell和數據庫等。
settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試標志以及其他一些工作的變量。
urls.py ----- 負責把URL模式映射到應用程序。
|
需要注意的是,這里的幾個py都是行使管理權限的。
3、在mysites目錄下創建應用(app)
python3 manage.py startapp goApp

這新建一個goApp的實際項目,這個實際的項目是可以被啟動的。
4、啟動django項目
python3 manage.py runserver 8080
這樣,我們的django就啟動起來了。當我們訪問http://127.0.0.1:8080/時,可以看到
如果以上工作全部能夠成功,那么證明Djangon的下載安裝是成功的,下面我們來具體理解其相關內容。
二、文件結構和各種作用
manage.py文件位於整個項目的最外層,是該項目的項目管理器,通過不指定命令運行,可以發現它具備以下功能。
比如,我們在上面使用過的:
啟動項目:python3 manage.py runserver 8080
wsgi.py:全稱 webserver getway interface,即Web服務器的網關接口
urls.py:即路由配置
django下所有的頁面都需要urls文件中配置一下,否則在訪問的時候會找不到該文件。
settings.py:
配置文件,各種路徑、國際化、debug、模版等均在此文件中配置。
三、簡單示例
我了進一步加速對相關知識的理解,我們創建一個最為簡單的程序,它能夠實現的就是讀取並顯示當前系統OpenCV版本。我們需要改寫以下文件:
url控制器 url.py
from django.http import HttpResponse
import cv2
def index(request):
return HttpResponse(cv2.__version__ )
其中
就是制定GOPyWarper0430的具體位置。
五、后端調用優缺點分析
優勢是極大程度地擴展了OpenCV的使用范圍,在以前圖像算法大多是運行在PC機上面,通過這種方式,能夠非常方便地在手機等消費類電器上進行部署,但是也需要進一步就時延和並發進行相關研究;后端調用能夠比較方便地集成復雜和自研算法,對於實際項目來說很有幫助。
這種方法的缺點是可想而知的性能問題,因為OpenCV通過Python調用,再通過Django變成網絡服務,這里面很多環節都是瓶頸,那么在實際項目過程中都需要在各個節點關口去做性能優化。
感謝閱讀至此,希望有所幫助。











