django1 8使用表單上傳檔案的實現方法

2022-10-04 21:30:52 字數 2668 閱讀 9714

python下有許多款不同的 web 框架。django是重量級選手中最有代表性的一位。許多成功的**和app都基於django。

django是乙個開放源**的web應用框架,由python寫成。

在django中我們可以採用form類來處理表單,通過例項化處理和在模板中渲染,就可以輕鬆完成表單的需求,採用django的表單處理方式,能幫我們省去很多的工作,比如驗證不能為空,或者要符合某種模式的輸入才有效,這些處理起來非常方便,不用自己再單獨寫**去驗證表單的資料正確性,所以在開發中比較常用,form提供了很多表單字段,比如日期,文字型別等,如果你熟悉基本的html,學起來會非常容易上手,所以今天我們不打算對每個表單的字段進行逐一說明,今天只說下表單檔案的上傳,因為這個型別比較特殊,需要一點特殊的處理,我們來建立乙個簡單的乙個例項:

首先我們用form建立乙個簡單的表單:

class userform(forms.form):

username = forms.charfield(required=false)

headimg = forms.filefield()

class userform(forms.form):

username = forms程式設計客棧.charfield(required=false)

headimg = forms.filefield()

這個表單就2個字段,要求使用者輸入使用者名稱和上傳乙個檔案或。

接下來我們放到模板中去渲染,這時候就可以看到乙個基本表單了,檢視函式如下:

def register(request):

if request.程式設計客棧method == "post":

uf = userform(request.post, request.files)

if uf.is_valid():

#放上傳檔案的**

#放上傳檔案的**

這個函式判斷使用者的是否為post請求,如果是並驗證是有效的,然後就返回ok,在驗證正確和返回ok的中間放我們的上傳檔案**,因為只有檔案上傳成功能返回ok,我們一會說,如果是get請求,就直接顯示乙個空表單,讓使用者輸入。

處理上傳檔案就是往伺服器上生成乙個檔案,並將上傳的檔案內容寫到新的檔案中,所以它的基本函式是這樣的,接收上傳檔案物件為引數,然後本地開啟乙個檔案,從上傳的檔案中讀出檔案,寫入新的檔案中,**如下:

def handle_uploaded_file(f):

with open('/server/testform/upload/' + f.name, 'wb+') as destination:

for chunk in f.chunks():

destination.write(chunk)

def handle_uploaded_file(f):

with open('/server/testform/upload/' + f.name, 'wb+') as destination:

for chunk in f.chunks():

destination.write(chunk)

有了這個上傳檔案的處理函式,我們就可以進一步完善我們程式設計客棧的檢視函式裡,最終的**如下:

def register(request):

if request.method == "post":

uf = userform(request.post, request.files)

if uf.is_valid():

handle_uploaded_file(request.files['headimg'])

def register(request):

if request.method == "post":

uf = userform(request.post, request.files)

if uf.is_valid():

handle_uploaded_file(request.files['headimg'])

這樣就完成了乙個檔案的上傳,完畢。

本文標題: django1.8使用表單上傳檔案的實現方法

本文位址: /jiaoben/python/169101.html

Django 1 8安裝使用

1 使用pip安裝django,pip是什麼,如何安裝?自行放狗搜 pip install django 1.9 2 建立專案 django admin startproject djangosite 3 執行專案 cd djangosite python manage.py runserver 1...

Django1 8教程 安裝Django

你是不是對django的學習感到迷茫?是不是對網上零星的教程感到絕望?是不是苦於沒有可以迅速上手的例項而發愁?如果你同我一樣有這些感受,那麼 django.by.example 這本書將是你指路的明燈。本書基於django1.8 python3.4的環境,裡面包含了個人部落格 社交 購物平台等具有實...

django1 8認證系統 2

注意 本文翻譯自django1.8的官方文件 django提供了乙個簡單的許可權管理系統.它提供方法給指定的使用者和組分配許可權 django的admin site使用了許可權管理,然而你也可以你的 中使用.django的admit site使用了permissions以下功能 myuser.gro...