猫でもわかるWebプログラミングと副業

本業Webエンジニア。副業でもWebエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

Python で Hello World して学ぶ Docker の使い方

はじめに 前提知識 Docker 上で Python のコマンドを実行してみる Python の Docker イメージを探す Docker イメージのダウンロードと起動 Python を書いて Docker 上で動かす Python のプログラムを書く Dockerfile を書く Docker イメージのビルド Docker …

これまで僕が仕事で使ったWebフレームワークと言語の特徴

これまで僕が業務で触ったことあるフレームワーク(と言語)は Laravel (PHP) Slim Framework (PHP) Django (Python) Gin (Go言語) で、どれも1年以上は保守しています。 長年業務で使ってきたこれらのフレームワークについて、実際使ってみてどうだったのか…

AWS ALB のヘルスチェックと Django の ALLOWED_HOSTS

はじめに ALLOWED_HOSTS との兼ね合い 対策 ALLOWED_HOSTS の意味 結局どうすればいいのか 事例を調査する 結論 はじめに 一般的に、 AWS で Web アプリケーションを動かすときは、 Application Load Balancer *1 と EC2 を利用します。 Application Load Ba…

pyenv を使っている環境で bad interpreter: /usr/local/opt/python@2/bin/python2.7: no such file or directory

問題 解決方法 問題 先日、久々に eb コマンド(Python で書かれている、 AWS ElasticBeanstalk の CLI ツール)を使おうとして、以下のエラーになった。 $ eb list zsh: /usr/local/bin/eb: bad interpreter: /usr/local/opt/python@2/bin/python2.7: no su…

Django 2.2 → 3.1 バージョンアップで MySQL may not allow unique CharFields to have a max_length > 255

Django を2.2 → 3.1 にバージョンアップしたら、以下の Warning が出るようになった。 test_app.Thumbnail.url: (mysql.W003) MySQL may not allow unique CharFields to have a max_length > 255. HINT: See: https://docs.djangoproject.com/en/3.1/ref/da…

Djang 2.2 -> 3.1 バージョンアップで module 'MySQLdb.constants.FIELD_TYPE' has no attribute 'JSON'

エラー内容と解決方法 Django 2.2 から Django 3.1 にアップグレードしたら以下のエラーが出るようになった。 (前略) File "/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/introspection.py", line 27, in DatabaseIntrospection FIEL…

VGG16 と VGG19 の summary() を見てみる

VGG16, VGG19 summary() VGG16 の summary() VGG19 の summary() まとめ VGG16, VGG19 画像認識の学習済みモデル、VGG16 と、 VGG19 というのがあります。 16, 19 というのは層の数だそうです。勝手に、2016年、2019年みたいな意味かと勝手に思ってました。 …

Tensorflow で Model.fit_generator is deprecated Please use Model.fit, which supports generators.

Tensorflow で Model.fit_generator を使ったら下記Warningが出た WARNING:tensorflow:From <ipython-input-12-4f61d48d2ed6>:1: Model.fit_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version. Instructions for updating: </ipython-input-12-4f61d48d2ed6>…

Django REST framework で UnorderedObjectListWarning

Django REST framework でこのようなエラーが出ることがありました。 UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered このエラーは、「オブジェクトの順序が定まっていない」というエラーです。 Django REST fra…

Django の runserver より gunicorn のほうが早くなるのか ApacheBench で検証

Django の runserver は遅い 皆さん開発時に Django の runserver というコマンドを使っていると思いますが、この runserver は本番環境では使えません。 DO NOT USE THIS SERVER IN A PRODUCTION SETTING. It has not gone through security audits or perf…

Python feedparser で DeprecationWarning To avoid breaking existing software while fixing issue 310, ..

今回起きた事象 DeprecationWarning とは 今回起きた事象 feedparser 5 を使っているとこのような DeprecationWarning が出ていた(後に書くが、6でもこの Warning が出る)。 /usr/local/lib/python3.6/site-packages/feedparser.py:334: DeprecationWarnin…

bad interpreter: /usr/local/opt/python/bin/python3.7: no such file or directory

先日、 AWS CLI や AWS EB CLI を利用しようとしたらエラーになった。 $ eb list zsh: /Users/yoshiyuki_sakamoto/Library/Python/3.7/bin/eb: bad interpreter: /usr/local/opt/python/bin/python3.7: no such file or directory /Users/yoshiyuki_sakamoto…

MacBook Pro 2018 と Windows 10 + GTX 750 Ti でディープラーニングの時間比較

概要 Mac Windows + GTX 750 Ti 結論 概要 松尾研究室から公開されている Deep Learning のテキストのうち、4章2節のプログラムでグラボありなしの性能比較をしてみます。 https://github.com/matsuolab-edu/dl4us/blob/master/lesson4/lesson4_sec2_exercis…

Kerasを使って名義尺度をone-hot表現に変換する

はじめに: Deep Leraning for us one-hot 表現とは Keras を使った one-hot 表現への変換 はじめに: Deep Leraning for us これは東大松尾研究室が公開している Deep Learning for us を参考にしています。 github.com one-hot 表現とは Deep Learning for u…

django-nose を使って django のテスト結果を XML で出力する

django-nose とは django-nose のインストール django-nose を Django に読み込ませて、XMLを出力させる INSTALLED_APPS TEST_RUNNER NOSE_ARGS 以上 django-nose とは Python で Web 開発をする時に Django フレームワークを使うことが多い CI 環境として C…

Djangoの「プロジェクト」と「アプリケーション」、INSTALLED_APPS【PythonでWebアプリ】

プロジェクトとアプリケーション アプリケーションの作成 INSTALLED_APPへの追加(重要) 今回の差分 参考 プロジェクトとアプリケーション Django には「プロジェクト」と「アプリケーション」の概念があり、 一つのプロジェクトの中に複数のアプリケーショ…

Python と Django で Web アプリを作って Docker で動かす: その1

はじめに なぜPythonを使うのか 環境 Django を入れる Django アプリケーションの作成 DockerでPythonの開発環境を作成する requirements.txt の用意 Dockerfile の作成 Docker のビルド docker-compose ディレクトリが同期されるように 続きは次回 はじめに…

Django REST framework のフィルタ(公式ドキュメントの日本語訳)

はじめに フィルタリング ログインユーザーを使ったフィルタリング URLによるフィルタリング Query parameter を使ったフィルタリング ジェネリックを使ったフィルタリング フィルタを設定する フィルタの注意点 get_queryset を上書き + FilterBackend REST…

Python初心者のプログラミングに対する不安について考えてみた

質問の要点を整理 僕の想像 回答 「不安」について どうやって就職するか 学生の場合 社会人の場合 『Pythonの絵本』の次にやるプラスアルファ さいごに 以前以下のような質問を質問箱でいただきました。 peing.net 質問の要点を整理 この質問の要点を整理す…

2 - Requests and responses - Django REST framework ドキュメントの簡単日本語訳

原文 Tutorial 2: Requests and Responses Request objects Response objects Status codes Wrapping API views Pulling it all together Adding optional format suffixed to our URLs How's it looking Browsability What's next? 原文 2 - Requests and r…

Quickstart - Django REST framework の簡単な日本語訳

原文 Quickstart Project Setup Serializers Views URLs Pagination Settings Testing our API 原文 Quickstart - Django REST framework Quickstart ここでは、簡単なAPIを作成します。adminユーザーにだけユーザーとグループの閲覧と編集が可能なAPIを作成…

Home - Django REST framework の簡単な日本語訳

原文 Django REST framework Requirements Installation Example Quickstart Development Support Security 原文 Django REST Framework https://www.django-rest-framework.org/ Django REST framework Django REST framework は強力な Web API 開発のツー…

Pythonの型ヒントの書き方【チートシート・カンペ】

Python3から追加された型ヒントについて、よく使う書き方をまとめます。必要があれば随時追記していきます。 Typing, Type annotation, Type hinting, Type hint, 型アノテーション, 型ヒント, タイプアノテーション, タイプヒント etc... どれが正式名称な…

DjangoのクラスベースビューでSCRFトークンを無効化する

デバッグ時などにDjangoのクラスベースビューでCSRFトークンを一時的に無効化したいときの方法です。 例えばこういうAPIがあったとします。 from django.http import JsonResponse from django.http import HttpRequest from django.views import View class…

pythonのコーディング規約 pep8 を読んみる

もくじ もくじ はじめに 参考 インデント 空行 まとめ はじめに 最近pythonを書く機会がちょっとあり、pythonのコーディング規約ガイド pep8 を読んだほうがいいなーと思ったのでよみはじめています。 今回はインデントと空行のところを読んだので簡単に気に…

Dockerではなくてheroku.ymlを使ってPython2とOpenCVの環境をHeroku上に整える

はじめに HerokuでOpenCVを扱いたい場合、従来はDockerfileを用意してデプロイする必要がありましたが、heroku.ymlの登場によりよりお手軽にデプロイできるようになりましたので紹介します。 環境 Python 2.7.14 Flask 0.10.1 gunicorn 19.7.9 opencv-python…

python 2 で pip を使ってのの PIL(Pillow)のインストール方法とimportの仕方

環境 python 2.67.6 Pillow 5.0.0 pillow(PIL)インストール後 $ python --version Python 2.7.6 $ pip list ... Pillow (5.0.0) ... pipによりPILのインストール $ sudo pip install pil [master] Password: The directory '/Users/yoshiyuki_sakamoto/Lib…

curlで複数のファイルとファイル以外のパラメータをPOSTして、PythonのFlaskでそれらを受け取る

curlでファイルをPOSTしてFlaskで受け取る方法 Webアプリ開発中、curlでAPIの動作を確認したい時があるかと思います。 先日PythonのWebフレームワーク Flask を使ってWebアプリを開発していたのですが、curlでどうやってpostしたらいいのか、さらにはFlaskで…

PyCon全体の感想とPyCon二日目メモ

PyCon全体の感想 セッションが面白い セッションが3つ同時に走っており、だいたいどれか1つは自分の興味のあるセッションがあります。 また、僕のようなPython初心者でも面白いセッションがたくさんありました。 1万円は安い 僕は早期チケットだったので8000…

PyCon1日目メモ

強くなるためのコンテスト @cocodrips 発表者 くー@( o・ω・)ノEdgeAIえんじにゃ (@cocodrips) | Twitter スライド 強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp from cocodrips www.slideshare.net 主なサイ…