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

Python的Tornado框架實現(xiàn)圖片上傳及圖片大小修改功能

 更新時間:2016年06月30日 17:24:58   作者:cangmean  
Tornado是一個異步的Python Web開發(fā)框架,同時也是一個優(yōu)秀的異步服務(wù)器開發(fā)庫,這里我們將來講解一下Python的Tornado框架實現(xiàn)圖片上傳及圖片大小修改功能方面的一些重點:

圖片的上傳

上傳圖片使用了表單提交, 下面是html部分, enctype="multipart/form-data"表示不對字節(jié)進行編碼,上傳文件類型時需指定. input標簽的 type="file" 指定上傳類型.

<form action="/" enctype="multipart/form-data" method="post">
  <input type="file" name="headimg">
</form>

下面是tornado接受文件的部分

class UploadHandler(BaseHandler):
  def post(self):
    # 這部分就是上傳的文件,想要查看更多可以print self.request看看
    # 該文件返回一個元素為字典的列表
    imgfile = self.request.files.get('headimg')
    for img in imgfile:
      # img有三個鍵值對可以通過img.keys()查看
      # 分別是 'filename', 'body', 'content_type' 很明顯對應著文件名,內(nèi)容(二進制)和文件類型
      with open('./static/uploads/' + img['filename'], 'wb') as f:
        # 文件內(nèi)容保存 到'/static/uploads/{{filename}}'
        f.write(f['body'])

這樣就可以通過/static/uploads/文件名的形式訪問

對圖片大小進行修改

下面將寫對圖片進行的resize

class UploadHandler(BaseHandler):
  @tornado.web.authenticated
  def post(self):
    # 應該寫到上面, 為了顯示寫到了函數(shù)內(nèi)
    import time
    # PIL 是 python中對圖片進行操作的模塊, 感興趣可以去看一下
    from PIL import Image
    # 可以想文件一樣使用, 只是存放在內(nèi)存
    from cStringIO import StringIO

    # 判斷上傳文件大小
    size = int(self.request.headers.get('Content-Length'))
    if size / 1000.0 > 2000:
      self.write("上傳圖片不能大于2M.")
    imgfile = self.request.files.get('headimg')
    for img in imgfile:
      # 對文件進行重命名
      name = str(time.strftime('%Y%m%d%'), time.localtime())\
          + '_' + self.current_user + '_headimg.png'

      with open('./static/uploads/' + name, 'wb') as f:
        # image有多種打開方式,一種是 Image.open('xx.png')
        # 另一種就是 Image.open(StringIO(buffer)) 
        im = Image.open(StringIO(img['body']))
        # 修改圖片大小resize接受兩個參數(shù), 第一個是寬高的元組數(shù)據(jù),第二個是對圖片細節(jié)的處理,本文表示抗鋸齒
        im = im.resize((72, 72), Image.ANTIALIAS)
        # 打開io 就像文件一樣
        im_file = StringIO()
        im.save(im_file, format='png')
        # 這是獲取io中的內(nèi)容
        im_data = im_file.getvalue() 
        f.write(im_data)

這樣就可以上傳的時候?qū)ξ募笮∵M行修改

相關(guān)文章

  • Python如何輸出警告信息

    Python如何輸出警告信息

    這篇文章主要介紹了Python如何輸出警告信息,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • python pandas模塊進行數(shù)據(jù)分析

    python pandas模塊進行數(shù)據(jù)分析

    Python的Pandas模塊是一個強大的數(shù)據(jù)處理工具,可以用來讀取、處理和分析各種數(shù)據(jù),本文主要介紹了python pandas模塊進行數(shù)據(jù)分析,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Python定時發(fā)送天氣預報郵件代碼實例

    Python定時發(fā)送天氣預報郵件代碼實例

    這篇文章主要介紹了Python定時發(fā)送天氣預報郵件代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • python使用配置文件過程詳解

    python使用配置文件過程詳解

    這篇文章主要介紹了python使用配置文件過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 基于Python實現(xiàn)電影售票系統(tǒng)

    基于Python實現(xiàn)電影售票系統(tǒng)

    這篇文章主要介紹了通過Python實現(xiàn)一個簡單的電影售票系統(tǒng),文中的示例代碼對我們學習Python有一定的幫助,感興趣的小伙伴可以跟隨小編一起學習一下
    2021-12-12
  • 三步解決python PermissionError: [WinError 5]拒絕訪問的情況

    三步解決python PermissionError: [WinError 5]拒絕訪問的情況

    這篇文章主要介紹了三步解決python PermissionError: [WinError 5]拒絕訪問的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 詳解matplotlib技巧之縮放和投影

    詳解matplotlib技巧之縮放和投影

    我們在使用matplotlib繪制圖形時,有兩個重要的技巧:一種是?Scale(縮放),一種是Projection(投影),縮放和投影在matplotlib繪圖中起著至關(guān)重要的作用,它們幫助我們更好地展示和理解數(shù)據(jù),本文將詳細的給大家介紹這兩個技巧,需要的朋友可以參考下
    2024-01-01
  • Python編寫的com組件發(fā)生R6034錯誤的原因與解決辦法

    Python編寫的com組件發(fā)生R6034錯誤的原因與解決辦法

    pythoncom27.dll可能沒有包含manifest信息,或者沒有包含正確的manifest信息,或者系統(tǒng)中的c++ runtime library受到破壞都有可能造成這種現(xiàn)象
    2013-04-04
  • 詳解Django中六個常用的自定義裝飾器

    詳解Django中六個常用的自定義裝飾器

    這篇文章主要介紹了詳解Django中六個常用的自定義裝飾器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖

    Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖

    matplotlib是python的一個模塊,用于繪制各種圖形,今天介紹一下折線圖的繪制,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖的相關(guān)資料,需要的朋友可以參考下
    2022-05-05

最新評論

芜湖市| 南皮县| 榕江县| 金华市| 湖南省| 合作市| 堆龙德庆县| 上思县| 吉林省| 黄陵县| 光泽县| 宁海县| 桂林市| 长兴县| 德保县| 喀喇| 南丰县| 灵宝市| 黄陵县| 崇礼县| 沅江市| 加查县| 长阳| 正蓝旗| 林甸县| 南安市| 宜昌市| 贵州省| 都匀市| 佛山市| 铜鼓县| 什邡市| 韶山市| 饶河县| 丰台区| 绵竹市| 弋阳县| 井冈山市| 汝南县| 台江县| 武城县|