『入る学科間違えた高専生』の日記

プログラミングのコードを書いたりする予定です。あとは日記等。あといつまで高専生やねん

DjangoでPyMySQLを使うのそろそろやめよう

はじめに

こんにちは。
今回は DjangoPyMySQL を使うのが主流(私の観測範囲では使ってる人が多い気がする)だと思うんですが、「いや、そろそろ使うのやめようぜ」ということを記事にしたいと思います!

今回の実装したコードは以下です。

bitbucket.org

どうして?

そもそも、 PyMySQL 自体は、Djangoの推奨 API ドライバではない。

docs.djangoproject.com

PyMySQL が選ばれる理由として、私が考える中では、 Pure Python だからインストールに失敗することは(ほぼ)ない。ということかなぁって思いました。
私はそうだった。

実際、 Django が推奨している mysqlclient はインストールバトルが勃発することが多々あった。あった。あったよ。
今回は、その対処方法も後に紹介することにしよう。(なぜ急にこの口調。

人気的にはやっぱり、 PyMySQL のほうが圧倒的!人気!

python.libhunt.com

導入

なぜ、私が PyMySQLDjango で使わなくなったのかを含めて、パフォーマンスが mysqlclient にすることによって上がるのではないかと仮説とともにこの記事を書いていきたいと思います。

続きを読む

個人でリリースしているアプリのアイコンをランサーズを通じて発注した

はじめに

デザインセンスのないみんな〜〜〜!!
息してる〜〜〜〜〜??????

ウッ...苦し....(ここでブログ記事が終わっている

ということにならないように。

タイトル通り、アプリのアイコンをランサーズを使ってデザイナーさんに作っていただきました。

続きを読む

Django (DRFを含む) で日付をレスポンスに含めて Swift の Codable で正常にデコードさせる

はじめに

私は、よく Django + iOS(Swift) を使ってサービスを作ったり作らなかったりしているわけですが、以前このようなことになりました。

例えば、 Djangodjango.utils.timezone.now なものを DRFrest_framework.response.Response に直で返したりとか馬鹿なことをやってたら
iOS 側の API クライアントがデコードエラー吐き出してなんだろうって思って調査したらフォーマットが rest_framework.serializer.Serializer とかを通さないとそのまま django.http.response.HttpResponseBase の中身に入ってしまってバグってしまうんだなっていうことがありました。

詳しくは、こちらですね。

github.com

bytes または str でないとそのまま str によって展開されてしまうっていうやつ

>>> from datetime import datetime
>>> str(datetime.now())
'2019-06-18 14:33:53.148964'

という感じ。

それで本題。これを Swift の JSONDecoder で対応させるか、 Django 側で一括で処理させるかっていうやつ。

環境

続きを読む

PythonでGitHubの特定のリポジトリのPRをマージする

はじめに

お久しぶりです。まだ生きてます。(昨日、母親に生存確認されました)

自動で自分の書き込み権限があるリポジトリの PR をマージしたいなという思いから前に作ったけどブログに書くまでもないなと思っていたのですが、
最近ブログのトップに広告が表示されだしてしまったので書きます。

今回、このコードを書いたのは、あるサーバアプリプロジェクトが GitHub の PR をマージすることによって AWS の CodePipeline が動いて EC2 にデプロイする仕組みになってるんですけど、
金銭的リソースの制限があるので AutoScaling の最小サイズ(1にしてます)のままで動いています。
これだとトラフィックコントロールしてもデプロイしてる間はプロダクトにアクセスができないので夜中にデプロイしたいという要望にお答えしたい。
しかし、デプロイするたびに夜中に起きてるのはしんどい→明日だって仕事だ。明日はデートだ!とかいろいろある。ちなみに僕にはデートの予定はない。
ここで、 AWS Lambda + CloudWatch を使って夜中に発火させればいいんじゃないかということ書いた次第です。

環境

続きを読む

PushKitのプッシュ通知をPython3(hyper)から送信する

はじめに

ちょっと意味のわからないタイトルになった。いつものことなので大して気にしていない。

developer.apple.com

developer.apple.com

上記のAppleの技術をPython3を使って送信するっていうやつです。

今更感があるがそんなのは関係ないっていうことで。(???)

環境

  • Python3.7.0
  • hyper 0.7.0

pypi.org

開発自体はmacOS 10.14.2で行っていますが、Docker等に乗せても動いたので問題ないかと思います。

続きを読む