91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

flask如何實現上傳圖片并縮放作為頭像

發布時間:2021-05-20 14:33:58 來源:億速云 閱讀:236 作者:小新 欄目:開發技術

小編給大家分享一下flask如何實現上傳圖片并縮放作為頭像,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

個人開發的 flask 論壇進入尾聲,還剩最后一個上傳圖片更換頭像功能,搞了一整天,最后終于解決了所有問題,現在記錄下解決方案。

1. 上傳文件

分析一下更換頭像功能,我們需要做哪些事,簡單的思路是:上傳文件,獲取文件的 url 。

文件上傳的基本原理實際上很簡單,基本上是:

一個帶有 enctype=multipart/form-data 的 <form> 標記,標記中含有 一個 <input type=file>。

應用通過請求對象的 files 字典來訪問文件。

使用文件的 save() 方法把文件永久 地保存在文件系統中。

于是可以得到我們的提供上傳按鈕的表單頁面:

{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}

{% block title %}SYSUfm - 更換頭像{% endblock %}

{% block page_content %}
<div class="page-header">
  <h2>更換你的頭像</h2>
</div>
<div class="col-md-4">
  <form action="" method=post enctype=multipart/form-data>
    <input type=file name=file><br/>
    <input type=submit value=Upload>
  </form>
</div>

{% endblock %}

2. 創建略縮圖

接下來我們需要有路由到這個頁面的視圖函數,服務器后臺端的代碼如下:

@main.route('/edit-avatar', methods=['GET', 'POST'])
@login_required
def change_avatar():
  if request.method == 'POST':
    file = request.files['file']
    size = (40, 40)
    im = Image.open(file)
    im.thumbnail(size)
    if file and allowed_file(file.filename):
      filename = secure_filename(file.filename)
      im.save(os.path.join(main.static_folder, 'avatar', filename))
      current_user.new_avatar_file = url_for('main.static', filename='%s/%s' % ('avatar', filename))
      current_user.is_avatar_default = False
      flash(u'頭像修改成功')
      return redirect(url_for('.user', username=current_user.username))
  return render_template('change_avatar.html')

這里 main 是一個 blueprint,file = request.files['file'] 語句獲得圖片文件對象,將其轉換為 Image 對象,通過 thumbnail 方法進行略縮。

最后 im.save(os.path.join(main.static_folder, 'avatar', filename)) 語句將略縮圖片保存到服務指定路徑。

以上是“flask如何實現上傳圖片并縮放作為頭像”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

横山县| 万州区| 拉孜县| 同心县| 隆尧县| 工布江达县| 天全县| 高青县| 马关县| 象山县| 肥西县| 山西省| 张家口市| 五家渠市| 镇雄县| 温州市| 甘孜| 丹东市| 天全县| 科技| 黑水县| 朝阳区| 辉县市| 赫章县| 海盐县| 彰化县| 长沙市| 余庆县| 蒲城县| 皋兰县| 陇西县| 华坪县| 德江县| 河源市| 恭城| 无棣县| 江油市| 株洲市| 慈利县| 阿鲁科尔沁旗| 江西省|