最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django1.8使用表單上傳文件的實(shí)現(xiàn)方法

 更新時(shí)間:2016年11月04日 17:12:22   投稿:mrr  
Django是一個(gè)開(kāi)放源代碼的Web應(yīng)用框架,由Python寫(xiě)成。這篇文章主要介紹了django1.8使用表單上傳文件的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看看吧

Python下有許多款不同的 Web 框架。Django是重量級(jí)選手中最有代表性的一位。許多成功的網(wǎng)站和APP都基于Django。

Django是一個(gè)開(kāi)放源代碼的Web應(yīng)用框架,由Python寫(xiě)成。

在django中我們可以采用Form類(lèi)來(lái)處理表單,通過(guò)實(shí)例化處理和在模板中渲染,就可以輕松完成表單的需求,采用django的表單處理方式,能幫我們省去很多的工作,比如驗(yàn)證不能為空,或者要符合某種模式的輸入才有效,這些處理起來(lái)非常方便,不用自己再單獨(dú)寫(xiě)代碼去驗(yàn)證表單的數(shù)據(jù)正確性,所以在開(kāi)發(fā)中比較常用,F(xiàn)orm提供了很多表單字段,比如日期,文本類(lèi)型等,如果你熟悉基本的html,學(xué)起來(lái)會(huì)非常容易上手,所以今天我們不打算對(duì)每個(gè)表單的字段進(jìn)行逐一說(shuō)明,今天只說(shuō)下表單文件的上傳,因?yàn)檫@個(gè)類(lèi)型比較特殊,需要一點(diǎn)特殊的處理,我們來(lái)創(chuàng)建一個(gè)簡(jiǎn)單的一個(gè)實(shí)例:

首先我們用Form創(chuàng)建一個(gè)簡(jiǎn)單的表單:

class UserForm(forms.Form):
username = forms.CharField(required=False)
headImg = forms.FileField()
class UserForm(forms.Form):
username = forms.CharField(required=False)
headImg = forms.FileField()

這個(gè)表單就2個(gè)字段,要求用戶(hù)輸入用戶(hù)名和上傳一個(gè)文件或圖片。

接下來(lái)我們放到模板中去渲染,這時(shí)候就可以看到一個(gè)基本表單了,視圖函數(shù)如下:

def register(request):
if request.method == "POST":
uf = UserForm(request.POST, request.FILES)
if uf.is_valid():
#放上傳文件的代碼
return HttpResponse('ok')
else:
uf = UserForm()
return render(request, 'register.html', {'uf': uf})
def register(request):
if request.method == "POST":
uf = UserForm(request.POST, request.FILES)
if uf.is_valid():
#放上傳文件的代碼
return HttpResponse('ok')
else:
uf = UserForm()
return render(request, 'register.html', {'uf': uf})

這個(gè)函數(shù)判斷用戶(hù)的是否為POST請(qǐng)求,如果是并驗(yàn)證是有效的,然后就返回OK,在驗(yàn)證正確和返回OK的中間放我們的上傳文件代碼,因?yàn)橹挥形募蟼鞒晒δ芊祷豋K,我們一會(huì)說(shuō),如果是GET請(qǐng)求,就直接顯示一個(gè)空表單,讓用戶(hù)輸入。

處理上傳文件就是往服務(wù)器上生成一個(gè)文件,并將上傳的文件內(nèi)容寫(xiě)到新的文件中,所以它的基本函數(shù)是這樣的,接收上傳文件對(duì)象為參數(shù),然后本地打開(kāi)一個(gè)文件,從上傳的文件中讀出文件,寫(xiě)入新的文件中,代碼如下:

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)

有了這個(gè)上傳文件的處理函數(shù),我們就可以進(jìn)一步完善我們的視圖函數(shù)里,最終的代碼如下:

def register(request):
if request.method == "POST":
uf = UserForm(request.POST, request.FILES)
if uf.is_valid():
handle_uploaded_file(request.FILES['headImg'])
return HttpResponse('ok')
else:
uf = UserForm()
return render(request, 'register.html', {'uf': uf})
def register(request):
if request.method == "POST":
uf = UserForm(request.POST, request.FILES)
if uf.is_valid():
handle_uploaded_file(request.FILES['headImg'])
return HttpResponse('ok')
else:
uf = UserForm()
return render(request, 'register.html', {'uf': uf})

這樣就完成了一個(gè)文件的上傳,完畢。

以上所述是小編給大家介紹的django1.8使用表單上傳文件,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Python實(shí)現(xiàn)自動(dòng)發(fā)送測(cè)試報(bào)告郵件的示例代碼

    Python實(shí)現(xiàn)自動(dòng)發(fā)送測(cè)試報(bào)告郵件的示例代碼

    SMTP也就是簡(jiǎn)單郵件傳輸協(xié)議,是一種提供可靠且有效電子郵件傳輸?shù)膮f(xié)議,python的smtplib模塊就提供了一種很方便的途徑發(fā)送電子郵件,它對(duì)smtp協(xié)議進(jìn)行了簡(jiǎn)單的封裝,下面就來(lái)和大家簡(jiǎn)單聊聊吧
    2023-07-07
  • Python字符串與正則表達(dá)式詳細(xì)介紹

    Python字符串與正則表達(dá)式詳細(xì)介紹

    這篇文章主要介紹了Python字符串與正則表達(dá)式,Python字符串與正則表達(dá)式在Python中具有非常重要的地位,熟練的使用字符串與正則表達(dá)式能夠?yàn)槲覀兊腜ython編程提供很多的便利之處,希望您閱讀完本文后能夠有所收獲
    2022-01-01
  • 解讀FastAPI異步化為transformers模型打造高性能接口

    解讀FastAPI異步化為transformers模型打造高性能接口

    這篇文章主要介紹了解讀FastAPI異步化為transformers模型打造高性能接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • python實(shí)現(xiàn)圖片處理和特征提取詳解

    python實(shí)現(xiàn)圖片處理和特征提取詳解

    這篇文章主要介紹了python實(shí)現(xiàn)圖片處理和特征提取詳解,文中向大家分享了Python導(dǎo)入圖片,將圖像轉(zhuǎn)化為二維矩陣,模糊化圖片等Python對(duì)圖像的操作,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Django model select的多種用法詳解

    Django model select的多種用法詳解

    最近看到 大神 運(yùn)維咖啡吧的 一篇文章,這里只做個(gè)備份,講的是各種 django model 查詢(xún),發(fā)現(xiàn)不錯(cuò),十分感謝該大神的無(wú)私奉獻(xiàn)
    2019-07-07
  • 如何用python實(shí)現(xiàn)結(jié)構(gòu)體數(shù)組

    如何用python實(shí)現(xiàn)結(jié)構(gòu)體數(shù)組

    這篇文章主要介紹了如何用python實(shí)現(xiàn)結(jié)構(gòu)體數(shù)組,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python淺析守護(hù)線程與非守護(hù)線程的區(qū)別與使用

    python淺析守護(hù)線程與非守護(hù)線程的區(qū)別與使用

    守護(hù)線程,又稱(chēng)后臺(tái)線程,它是在后臺(tái)運(yùn)行的,如果所有前臺(tái)線程都死亡,那么后臺(tái)線程就會(huì)自動(dòng)死亡,本章我們來(lái)了解守護(hù)線程與非守護(hù)線程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-08-08
  • Python實(shí)現(xiàn)簡(jiǎn)單的俄羅斯方塊游戲

    Python實(shí)現(xiàn)簡(jiǎn)單的俄羅斯方塊游戲

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)單的俄羅斯方塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 深入理解Python 關(guān)于supper 的 用法和原理

    深入理解Python 關(guān)于supper 的 用法和原理

    這篇文章主要介紹了Python 關(guān)于supper 的 用法和原理分析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-02-02
  • Python獲取系統(tǒng)默認(rèn)字符編碼的方法

    Python獲取系統(tǒng)默認(rèn)字符編碼的方法

    這篇文章主要介紹了Python獲取系統(tǒng)默認(rèn)字符編碼的方法,涉及Python中sys模塊getdefaultencoding方法的使用技巧,需要的朋友可以參考下
    2015-06-06

最新評(píng)論

色达县| 贡嘎县| 凤山县| 通辽市| 吐鲁番市| 揭阳市| 龙泉市| 清远市| 奉化市| 米脂县| 德钦县| 鹤庆县| 丽水市| 仲巴县| 平定县| 景德镇市| 珠海市| 黄龙县| 淮北市| 芦山县| 德庆县| 江达县| 楚雄市| 会同县| 洪湖市| 诸暨市| 宿州市| 尼玛县| 昭平县| 乳山市| 安丘市| 仪征市| 那坡县| 淮安市| 财经| 稷山县| 建水县| 西乡县| 巍山| 高台县| 上蔡县|