at backyard

Color my life with the chaos of trouble.

久しぶりにbottleを試してみるまで - 2019年(導入備忘録)

過去に何度かbottleは触っていたが、また久しぶりに触ってみようと思った。
bottleをセットアップして、触り出すまでの備忘録。

https://bottlepy.org/docs/dev/

bottleでのアプリ開発セットアップ

今回はpipenvを使って試していく

使用するPythonのバージョンは 3.7.2

pipenv --python 3.7.2

pipenvを使ってbottleをインストール

pipenv install bottle

まずはbottleを動かしてみるために、公式にあるhello worldを動かす。

from bottle import route, run, template

@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)

run(host='localhost', port=8080)

Pipfileに下記の2行を追加する

[scripts]
dev = "python3 main.py"

あとは下記のコマンドを実行して、http://localhost:8080/hello/world にアクセスしてみる

pipenv run dev

ここまでで最初の動作確認はOK

Pythonでもフォーマットと文法チェックをサクッと行いたい

ここの設定についてはどこかの記事を参考にさせていただいていたと思うが、参照先を失念してしまった。
検索して上の方に出ていた記事だったとは思うので、見つけたら後ほど貼っておく。

flake8 autopep8 flake8-import-order をインストールする

pipenv install --dev flake8 autopep8 flake8-import-order

そしてfmtコマンドと lint コマンドをそれぞれ定義

[scripts]
dev = "python3 main.py"
fmt = "autopep8 -ivr ."
lint = "flake8 --show-source ."

コードフォーマットしたいときは pipenv run fmtを叩くことでフォーマットしてくれる
文法チェックしたいときは pipenv run lint を叩くことでチェックしてくれる。

これで最低限の開発はスタートできそう。

pre-commitについて

pre-commitというPython製のツールを見つけた。
ちなみにPythonだけじゃなく、例えばNode.jsとかでも使えるらしい
git hooksの仕組みを使ったツール?みたいで試してみようかと思ったが、セットアップがちょっと長くなりそうだったのでここではやめた。

pre-commit

fmtやlintが通ったときのみ、コミットできるようにしておくのは良いかもしれない。
今度試してみよう。