婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Django的基本運用之Django垃圾分類詳解

Django的基本運用之Django垃圾分類詳解

熱門標簽:鶴壁手機自動外呼系統違法嗎 銀川電話機器人電話 沈陽防封電銷電話卡 高德地圖標注收入咋樣 地圖標注多個 企業微信地圖標注 B52系統電梯外呼顯示E7 萊蕪電信外呼系統 怎么辦理400客服電話

title: 利用Django實現一個能與用戶交互的初級框架
author: Sun-Wind
date: September 1, 2021

Django實現基本的框架

  • 此框架的功能是搭建服務器,使得服務器和客戶端交互
  • 此框架可以接受客戶端的請求,并返回根據請求所得到的結果

這里列舉一個垃圾識別分類的例子

Django簡介

Django 是一個由 Python 編寫的一個開放源代碼的 Web 應用框架。
使用 Django,只要很少的代碼,Python 的程序開發人員就可以輕松地完成一個正式網站所需要的大部分內容,并進一步開發出全功能的 Web 服務

MVC模型

Django 本身基于 MVC 模型,即 Model(模型)+ View(視圖)+ Controller(控制器)設計模式,MVC 模式使后續對程序的修改和擴展簡化,并且使程序某一部分的重復利用成為可能。

MVT模型

Django 的 MTV 模式本質上和 MVC 是一樣的,也是為了各組件間保持松耦合關系,只是定義上有些許不同,Django 的 MTV 分別是指:
M 表示模型(Model):編寫程序應有的功能,負責業務對象與數據庫的映射(ORM)。
T 表示模板 (Template):負責如何把頁面(html)展示給用戶。
V 表示視圖(View):負責業務邏輯,并在適當時候調用 Model和 Template。
除了以上三層之外,還需要一個 URL 分發器,它的作用是將一個個 URL 的頁面請求分發給不同的 View 處理,View 再調用相應的 Model 和 Template,MTV 的響應模式如下所示:
簡易圖:

創建垃圾分類項目

注意:博主使用的是windows系統,不同系統使用的指令不一樣
django-admin startproject rub>

使用以上指令創建項目
此時Django會形成一個項目框架,以下會一一解釋說明

  • rub:項目的容器
  • manage.py:作為一個實用的命令行工具,能夠讓你和項目進行交互
  • init.py:此空文件告訴python是一個python包
  • asgi.py: ASGI兼容的web服務器入口,以便運行項目
  • settings.py:該項目的配置,比如數據庫配置,訪問配置,鏈接配置
  • urls.py:該項目的url(路由)聲明
  • wsgi.py: WSGI兼容的web服務器入口,以便運行項目

運行我們的項目

py manage.py runserver 0.0.0.0:8000>
通過以上命令來運行我們的項目
此命令需要在rub文件夾里命名
其中0.0.0.0能夠讓局域網的其他電腦訪問到我們的網站,8000是端口號,也可以改成其他端口號,如果不寫端口號默認是8000
此時命令行會生成對應的本地服務器的http,訪問后如下所示

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

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

創建app

Django規定,如果要使用模型層,必須要創建一個app(雖然我們這個項目里面不用,但還是教一下)
django-admin.py startapp app>
然后Django就會自動生成app的框架
py manage.py migrate> # 創建表結構
py manage.py makemigrations app> # 讓 Django 知道我們在我們的模型有一些變更
py manage.py migrate app> # 創建表結構
運行以上指令可以完成數據庫表單的創建
這里只是額外引入一下,實際上本項目實現比較簡單,可以無需使用

配置路由

路由簡單的來說就是根據用戶請求的 URL 鏈接來判斷對應的處理程序,并返回處理結果,也就是 URL 與 Django 的視圖建立映射關系。
我們在rub的主路由中添加如下配置
path('',include('app.urls')),>
利用include語句可以將app的路由映射進來,這樣我們直接配置app的路由即可
include指的是路由的分發
Django 項目里多個app目錄共用一個 urls 容易造成混淆,后期維護也不方便。
使用路由分發(include),讓每個app目錄都單獨擁有自己的 urls。
在app的路由當中加入如下的配置
path('',views.index,name = 'index'),>
path('upload1',views.upload1,name = 'upload1'),>

path方法

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

  • route:字符串,表示URL規則,與之匹配的URL會執行第二個參數view
  • view:用來執行匹配的URL請求
  • kwargs:字典參數(通過此參數可以實現網頁變量的解析操作,后續會有解釋)
  • name:用來反向獲取URL

視圖層

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

def index(request):
    return render(request,'app/index.html')
def upload1(request):
    myfile = request.FILES.get('pic',None)
    if not myfile:
        return HttpResponse("沒有上傳的文件信息:")
    filename = str(time.time()) + "." + myfile.name.split('.').pop()#這里是對文件名進行預處理操作,時間函數可以隨機化一個值,用str方法轉換為字符串,然后用split拆分后綴名,可以實現任意圖片形式的保存
    destination = open("./static/pic/" + filename,"wb+")#利用open函數和chunks流寫入static文件夾
    for chunk in myfile.chunks():      # 分塊寫入文件  
        destination.write(chunk) 
    destination.close()
    label = predict_img(path="static/pic/" + filename)#此處是垃圾分類識別函數,因為競賽相關,就不放出具體的識別代碼了,讀者可以參考相關資料自行補充此函數
    print(label)
    os.remove("./static/pic/"+filename)#這里刪除文件,防止用戶傳入文件占用內存的問題
    context = {}
    context['result'] = label # 將result變量對應的鍵值設為lable,這樣可以讓html文件解析lable變量
    return render(request,'app/result.html',context)

接下來我們進行逐一解讀
render(): 返回文本,第一個參數為 request,第二個參數為字符串(頁面名稱),第三個參數為字典(可選參數,向頁面傳遞的參數:鍵為頁面參數名,值為views參數名)。
簡而言之就是根據路徑返回我們需要的頁面
注意這里要寫成app/index而不是rub/index,雖然index的網頁文件在rub的templates下創立
Request是一個對象,其屬性簡述如下

  • path 請求頁面的全路徑,不包括域名—例如, "/hello/"。m
  • ethod 請求中使用的HTTP方法的字符串表示。全大寫表示。如
if request.method == 'GET':
    do_something()
elif request.method == 'POST':
    do_something_else()
  • FILES

包含所有上傳文件的類字典對象。FILES中的每個Key都是input type="file" name="" />標簽中name屬性的值. FILES中的每個value 同時也是一個標準Python字典對象,包含下面三個Keys:
filename: 上傳文件名,用Python字符串表示
content-type: 上傳文件的Content type
content: 上傳文件的原始內容
注意:只有在請求方法是POST,并且請求頁面中

模板

模板是一個文本,用于分離文檔的表現形式和內容
在rub目錄下建立templates文件夾,屆時Django在通過URL尋找時會直接在此文件夾中找到對應的網頁文件,在template文件夾下新建一個app文件夾
建立的index.html文件如下

!DOCTYPE html>
html lang="cn">
head>
    meta charset="UTF-8">
    title>垃圾分類管理/title>
/head>
body>
      h2>垃圾分類管理/h2>
      {% include 'app/upload.html' %}
/body>
/html>

{% include %} 標簽允許在模板中包含其它的模板的內容。
upload.html文件如下:

!DOCTYPE html>
html lang = "en">
head>
    meta charset = "UTF-8">
    meta name = "viewport" content =  "width = device-width,initial-scale=1.0">
    title>       Document    /title>
/head>
body>
    h2>文件上傳 /h2>
    form action = "{% url  'upload1' %}"  method = "post"  enctype="multipart/form-data">
    {% csrf_token %}
    圖片序號:input type = "text" name = "title"/>br/>br/>
    請上傳需要識別的圖片:input type = "file" name = "pic"/>br/>br>
    input type = "submit" value = "上傳"/>
/form>
/body>
/html>

這里只講解一下csrf
csrf_token 用于form表單中,作用是跨站請求偽造保護。
如果不用{% csrf_token %}標簽,在用 form 表單時,要再次跳轉頁面會報403權限錯誤。
用了{% csrf_token %}標簽,在 form 表單提交數據時,才會成功。
至于其他的就是html語言的學習了,這里只簡要講解一下
在表單當中,input標簽后面跟對應的type屬性,可以上傳相關的數據到后面的name鍵位當中
{% url 'upload1' %}是反方向解析URL,這里會直接將我們輸入的信息提交到uoload1URL當中,然后會激活對應的視圖層,也就是說我們提交的圖片最終會傳到upload1函數中.
我們在上文當中提到的配置path路徑中的name就是這樣的作用,這里圖片上傳的name是'pic'對應于我們在上文方法中引用的FILE.get中的參數
最后一個result界面

html>
 div>
 	p>垃圾分類的結果是:{{ result }}/p>
 /div>
/html>

這里對應視圖層當中upload1方法,大家不妨轉到視圖層當中再看一下upload1函數
最后其返回的是render方法,然后返回的是result界面
在這里{{result}}是在html'中定義的一個變量,我們通過render方法可以用lable文本來代替
最后實現的結果如圖所示

我們只需要上傳圖片,然后提交利用我們自己寫的垃圾分類識別代碼即可得到對應的結果
這里我們提交上我們想要識別的圖片


結果

到此這篇關于Django的基本運用之Django垃圾分類詳解的文章就介紹到這了,更多相關Django垃圾分類內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Django ORM filter() 的運用詳解
  • python 運用Django 開發后臺接口的實例
  • Pycharm 操作Django Model的簡單運用方法

標簽:安慶 湘西 烏魯木齊 葫蘆島 三亞 呼倫貝爾 呼倫貝爾 銀川

巨人網絡通訊聲明:本文標題《Django的基本運用之Django垃圾分類詳解》,本文關鍵詞  Django,的,基本,運,用之,垃圾,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Django的基本運用之Django垃圾分類詳解》相關的同類信息!
  • 本頁收集關于Django的基本運用之Django垃圾分類詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色av一区二区| 亚洲欧美在线视频| 国产很黄免费观看久久| 99视频在线精品| 中文字幕乱码一区二区免费| 精品在线免费视频| 国产大片一区二区| 亚洲伦理在线精品| 久久综合九色综合欧美亚洲| 免费观看在线色综合| 91精品视频网| 欧美主播一区二区三区| 久久久夜色精品亚洲| 91视频观看视频| 亚洲丝袜精品丝袜在线| 欧美激情综合五月色丁香小说| 天天av天天翘天天综合网| 91在线一区二区| 日韩欧美一区中文| 99视频热这里只有精品免费| 国产·精品毛片| 性欧美大战久久久久久久久| 91一区二区三区在线观看| 精品乱码亚洲一区二区不卡| 丁香亚洲综合激情啪啪综合| 国产激情一区二区三区四区| 国产一区二区三区在线观看免费| 欧美日韩国产一二三| 色网站国产精品| 久久精品免费观看| 亚洲午夜激情av| 91麻豆国产自产在线观看| 一区二区三区在线观看动漫| 国产精品1区2区| 亚洲精品国产品国语在线app| 久久影音资源网| 樱花草国产18久久久久| 日本免费新一区视频| 欧美日韩精品三区| 日韩激情视频网站| 亚洲国产中文字幕在线视频综合| 6080日韩午夜伦伦午夜伦| 成人一区在线观看| 国产乱码一区二区三区| 天天影视涩香欲综合网| 亚洲va韩国va欧美va精品| 欧美视频在线一区| 成人午夜在线播放| 亚洲一区二区三区自拍| 26uuu亚洲| 欧美一区二区视频免费观看| 精品国产sm最大网站免费看| 高清国产午夜精品久久久久久| 亚洲精品在线三区| 麻豆国产91在线播放| 国产欧美综合色| 成人亚洲精品久久久久软件| 午夜不卡在线视频| 日韩色在线观看| 欧美日韩免费高清一区色橹橹| 国产在线一区二区综合免费视频| 亚洲女同一区二区| 亚洲精品网站在线观看| 国产精品天干天干在线综合| 亚洲国产精品一区二区www| 一区二区三区四区五区视频在线观看| 亚洲人成精品久久久久| 日本亚洲三级在线| 99国产欧美另类久久久精品| 亚洲综合清纯丝袜自拍| 亚洲天堂免费在线观看视频| 精品国产乱码久久久久久闺蜜| 9久草视频在线视频精品| 亚洲一区二区三区激情| 中文字幕精品在线不卡| 色天天综合久久久久综合片| 亚洲人成7777| 91蜜桃在线免费视频| 东方aⅴ免费观看久久av| 国产欧美一区二区在线观看| 国产精品毛片久久久久久久| 日韩一区二区免费在线电影 | 理论电影国产精品| 亚洲一二三区在线观看| 国产精品每日更新| 国产精品久久久久永久免费观看| 北条麻妃一区二区三区| 在线成人午夜影院| 久久嫩草精品久久久精品一| 国产精品天美传媒| 亚洲欧美一区二区视频| 6080国产精品一区二区| 欧美日本在线一区| 日本道色综合久久| 久久精品在这里| 一区二区三区免费网站| 亚洲人成在线播放网站岛国| 亚洲激情自拍视频| 欧美精品欧美精品系列| 欧美在线999| 国产在线精品一区二区夜色| 亚洲色图在线播放| 亚洲国产成人自拍| 亚洲伊人色欲综合网| 蜜臀av性久久久久蜜臀aⅴ| 蜜臀av一级做a爰片久久| 国产在线播放一区二区三区| 成人精品gif动图一区| 精品视频在线看| 亚洲欧洲日本在线| 一区二区三区在线免费视频| 国产欧美精品国产国产专区| 日韩精品中文字幕一区二区三区| 国产精品美女www爽爽爽| 午夜婷婷国产麻豆精品| 国产福利视频一区二区三区| 91精品国产福利| 亚洲第一会所有码转帖| 色哟哟一区二区在线观看| 欧美羞羞免费网站| 国产69精品久久久久777| 国产亚洲精品aa| 91麻豆精品国产91久久久久| 久久精品日产第一区二区三区高清版| 亚洲女性喷水在线观看一区| 成人av在线资源网| 欧美日韩国产美| 亚洲国产电影在线观看| 久久精品国产99| 色悠悠久久综合| 久久先锋影音av| 中文字幕一区二区三区精华液| 在线成人av网站| 日韩一二三区视频| 欧美精品一区二区久久久| 91麻豆成人久久精品二区三区| 国产美女一区二区三区| 91国偷自产一区二区三区成为亚洲经典 | 欧美网站大全在线观看| 欧美日韩在线不卡| 精品区一区二区| 亚洲欧美日韩国产综合| 久久9热精品视频| 国产成人午夜片在线观看高清观看| 色综合网站在线| 国产女主播在线一区二区| 五月天激情综合| 国产一区二区导航在线播放| 精品国产伦一区二区三区观看体验| 视频一区欧美日韩| 欧美亚洲一区二区在线| 中文子幕无线码一区tr| 亚洲免费视频中文字幕| 成人一道本在线| 亚洲综合一区二区| 91天堂素人约啪| 日韩精品在线一区| 国产在线观看免费一区| 国产日韩欧美精品在线| 成人精品免费看| 日韩专区中文字幕一区二区| 日韩一区和二区| 国产成人在线电影| 亚洲精品在线观看视频| 奇米色777欧美一区二区| 精品视频1区2区3区| 毛片一区二区三区| 五月婷婷久久丁香| 亚洲精品一区二区三区福利| 99这里都是精品| 亚洲成a人片综合在线| 日韩视频永久免费| 精彩视频一区二区| 午夜一区二区三区视频| 精品美女一区二区三区| av影院午夜一区| 亚洲福利一二三区| 久久只精品国产| 日韩不卡一二三区| 久久精品欧美一区二区三区不卡| 国产一区二区美女诱惑| 欧美成人综合网站| 水蜜桃久久夜色精品一区的特点 | 亚洲色图都市小说| 青青草国产精品亚洲专区无| 欧美一级日韩不卡播放免费| 另类小说一区二区三区| 国产综合久久久久影院| 在线免费视频一区二区| 色中色一区二区| 成人性生交大合| 奇米一区二区三区av| 欧美国产精品久久| 91蝌蚪porny九色| 亚洲国产wwwccc36天堂| 911精品国产一区二区在线| 国产九九视频一区二区三区| 一区二区高清视频在线观看| 国产精品久久福利| 国产欧美一区二区精品性色|