Django的基本運用之Django垃圾分類詳解_第1頁
Django的基本運用之Django垃圾分類詳解_第2頁
Django的基本運用之Django垃圾分類詳解_第3頁
Django的基本運用之Django垃圾分類詳解_第4頁
Django的基本運用之Django垃圾分類詳解_第5頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

第Django的基本運用之Django垃圾分類詳解manage.py:作為一個實用的命令行工具,能夠讓你和項目進行交互

init.py:此空文件告訴python是一個python包

asgi.py:ASGI兼容的web服務器入口,以便運行項目

settings.py:該項目的配置,比如數(shù)據(jù)庫配置,訪問配置,鏈接配置

urls.py:該項目的url(路由)聲明

wsgi.py:WSGI兼容的web服務器入口,以便運行項目

運行我們的項目

pymanage.pyrunserver:8000

通過以上命令來運行我們的項目

此命令需要在rub文件夾里命名

其中能夠讓局域網(wǎng)的其他電腦訪問到我們的網(wǎng)站,8000是端口號,也可以改成其他端口號,如果不寫端口號默認是8000

此時命令行會生成對應的本地服務器的http,訪問后如下所示

如果無法訪問,請查看是否是端口占用的問題,可以考慮更換一個端口號

悄悄說一句,8000端口占用多半是酷狗音樂什么的[]( ̄▽ ̄)*

創(chuàng)建app

Django規(guī)定,如果要使用模型層,必須要創(chuàng)建一個app(雖然我們這個項目里面不用,但還是教一下)

django-admin.pystartappapp

然后Django就會自動生成app的框架

pymanage.pymigrate#創(chuàng)建表結(jié)構(gòu)

pymanage.pymakemigrationsapp#讓Django知道我們在我們的模型有一些變更

pymanage.pymigrateapp#創(chuàng)建表結(jié)構(gòu)

運行以上指令可以完成數(shù)據(jù)庫表單的創(chuàng)建

這里只是額外引入一下,實際上本項目實現(xiàn)比較簡單,可以無需使用

路由簡單的來說就是根據(jù)用戶請求的URL鏈接來判斷對應的處理程序,并返回處理結(jié)果,也就是URL與Django的視圖建立映射關系。

我們在rub的主路由中添加如下配置

path('',include('app.urls')),

利用include語句可以將app的路由映射進來,這樣我們直接配置app的路由即可

include指的是路由的分發(fā)

Django項目里多個app目錄共用一個urls容易造成混淆,后期維護也不方便。

使用路由分發(fā)(include),讓每個app目錄都單獨擁有自己的urls。

在app的路由當中加入如下的配置

path('',views.index,name='index'),

path('upload1',views.upload1,name='upload1'),

path方法

Djangopath()可以接收四個參數(shù),分別是兩個必選參數(shù):route、view和兩個可選參數(shù):kwargs、name。

route:字符串,表示URL規(guī)則,與之匹配的URL會執(zhí)行第二個參數(shù)view

view:用來執(zhí)行匹配的URL請求

kwargs:字典參數(shù)(通過此參數(shù)可以實現(xiàn)網(wǎng)頁變量的解析操作,后續(xù)會有解釋)

name:用來反向獲取URL

在app的視圖層中加入如下代碼

defindex(request):

returnrender(request,'app/index.html')

defupload1(request):

myfile=request.FILES.get('pic',None)

ifnotmyfile:

returnHttpResponse("沒有上傳的文件信息:")

filename=str(time.time())+"."+.split('.').pop()#這里是對文件名進行預處理操作,時間函數(shù)可以隨機化一個值,用str方法轉(zhuǎn)換為字符串,然后用split拆分后綴名,可以實現(xiàn)任意圖片形式的保存

destination=open("./static/pic/"+filename,"wb+")#利用open函數(shù)和chunks流寫入static文件夾

forchunkinmyfile.chunks():#分塊寫入文件

destination.write(chunk)

destination.close()

label=predict_img(path="static/pic/"+filename)#此處是垃圾分類識別函數(shù),因為競賽相關,就不放出具體的識別代碼了,讀者可以參考相關資料自行補充此函數(shù)

print(label)

os.remove("./static/pic/"+filename)#這里刪除文件,防止用戶傳入文件占用內(nèi)存的問題

context={}

context['result']=label#將result變量對應的鍵值設為lable,這樣可以讓html文件解析lable變量

returnrender(request,'app/result.html',context)

接下來我們進行逐一解讀

render():返回文本,第一個參數(shù)為request,第二個參數(shù)為字符串(頁面名稱),第三個參數(shù)為字典(可選參數(shù),向頁面?zhèn)鬟f的參數(shù):鍵為頁面參數(shù)名,值為views參數(shù)名)。

簡而言之就是根據(jù)路徑返回我們需要的頁面

注意這里要寫成app/index而不是rub/index,雖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論