flashkは写真をアップロードして、画像としてスケーリングする例を実現します。


個人開発のflashkフォーラムは最後になりました。最後のアップロード写真をアップロードして、顔写真の機能を変えて、一日中やりました。最後にようやくすべての問題を解決しました。今は解決策を記録しています。
1.ファイルをアップロードする
プロフィール機能を分析してみます。どのようなことが必要ですか?簡単な発想はファイルをアップロードし、ファイルのurlを取得することです。
ファイルアップロードの基本原理は実は簡単です。
enctype=multiipad/form-dataの「form」のマークが付いています。マークには「input type=file」が含まれています。
アプリケーションは、要求対象のfiles辞書によってファイルにアクセスします。
ファイルの保存方法を使ってファイルをファイルシステムに永久に保存します。
アップロードボタンを提供するフォームのページがあります。

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

{% block title %}SYSUfm -     {% endblock %}

{% block page_content %}
<div class="page-header">
  <h1>      </h1>
</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)folder、「avaar」、filename)文は、画像を縮小してサービス指定のパスに保存します。
以上のflashkは写真をアップロードして画像を拡大・縮小することを実現しました。例えば、小編集は皆さんに全部の内容を共有しました。参考にしてもらいたいです。どうぞよろしくお願いします。