前提
Python とflaskで画像管理アプリを作ろうと思い下記の記事を参考に作りました。
https://bokepro.blog.fc2.com/blog-entry-8.html
osモジュールを使いファイルの拡張子を取得するのですが、変数名に見慣れない表記がありました。
該当のコード六行目でextという変数を定義してますが変数名の前にアンダースコアとコンマが記述されてます。
この書き方が何を意味しているのか分からずモヤモヤしています。
実現したいこと
このアンダースコアとコンマが何なのか知りたいです。このような書き方は初めてみました。
試しにこの_,を除いて実行してみたところAttributeErrorエラーになってしまいました。なのでアンダースコアの記述は合っているということになります。
もしこれについて何かご存知の方がいらっしゃいましたらご教授の程、よろしくお願いします。
発生している問題・エラーメッセージ
AttributeError: 'tuple' object has no attribute 'lower'
該当のソースコード
python
1@app.route("/", methods=['GET', 'POST']) 2def index(): 3 if request.method == 'POST': 4 img_file = request.files['img_file'] 5 # ファイルの拡張子を取得する 6 _, ext = os.path.splitext(img_file.filename) 7 # 小文字にして 8 ext = ext.lower() 9 if ext and ext in ALLOWED_EXTENSIONS: 10 # ランダムなファイル名を決める 11 new_name = secrets.token_urlsafe(16) + ext.lower() 12 # 縮小して保存 13 i = Image.open(img_file) 14 i.thumbnail((200, 200)) 15 i.save(os.path.join(UPLOAD_FOLDER, new_name)) 16 # データベースに保存 17 obj = FileUp(name=new_name) 18 db.session.add(obj) 19 db.session.commit() 20 21 return redirect(url_for('index')) 22 23 else: 24 # http://flask-sqlalchemy.pocoo.org/2.3/queries/ 25 images = FileUp.query.order_by(FileUp.id.desc()).all() 26 return render_template('index.html', images=images)
試したこと
osモジュールに関することや、このアンダーバーについて色々調べましたが情報が一切出て来ませんでした。元の記事でも特に言及されていなかったので余計にモヤモヤしてしまいます。
補足情報(FW/ツールのバージョンなど)
Flask 2.2.2
Flask-SQLAlchemy 3.0.2
Flask-WTF 1.1.1

回答2件
あなたの回答
tips
プレビュー