Published Date : 2020年12月10日18:44

5/5 給与所得者の所得税と住民税を計算するWEBアプリを作ろう
5/5 Create a web app that calculates income and resident taxes for salaried workers


This blog has an English translation


YouTubeにアップした動画、「【日本語解説】5/5 給与所得者の所得税と住民税を計算するWEBアプリを作ろう」の補足説明の記事です。

Here's a little more about the 「【Python】5/5 Create a web app that calculates income and resident taxes for salaried workers」 video I uploaded to YouTube.

字幕を付けるなら、英語音声と日本語音声の二つに分けたほうが良いと思ったので、今回から同じ動画だが音声が日本語と英語に分かれたものをアップしました。

I thought it would be better to separate the video into English audio and Japanese audio instead of adding subtitles to the video, so I uploaded the same video with Japanese and English audio separately.

ページの頭に日本語解説動画、ページの最後に英語解説動画のリンクが貼られてます。

There is a Japanese explanation video at the top of the page, and an English explanation video link at the end of the page.


目次

Table of Contents




① 動画の説明
① Video Description



警告:

今回説明する給与所得者の所得税及び住民税を計算するツールは、あくまで簡易的なお遊び用のツールです。

正確な数値、計算方法は各自で調べて下さい。

このツールは大雑把に大体の見積りを計算して楽しむ為のツールです。

決して従業員の年末調整や個人の確定申告等に使用しないでください。

さらに、税金の計算方法は変更される場合があり、控除についても同様です。

また、控除や税金の計算方法が間違っている可能性もありますので、

あまり信用せずに、各自で調べてから実験してみてください。

このツールを使って何かしらの損害が発生したとしても、私は一切の責任を負いません。

Warning:

​The tool I'm going to show you for calculating income and residence taxes for salaried workers is just a simple tool for playing.

​Please check the exact number and calculation method by yourself.

​This tool is used to calculate rough estimates and enjoy them.

​Do not use for year-end adjustment of employees or for individual tax return.

In addition, the method of calculating taxes and deductions may change.

Also, there is a possibility that the deduction and tax calculation methods are incorrect.

Don't trust it too much, and test it yourself.

​I will not be liable for any damage caused by using this tool.

それでは最後の仕上げとして、前回までに作成したWEBアプリをHEROKUにアップしてみましょう。

Then, as a final step, let's upload the WEB application we created before to HEROKU.

HEROKUにログインして、新しいアプリを作成してください。

​Please log in to HEROKU and create a new application.

HEROKUでアプリを作ってデプロイするのは何度も紹介しているので、詳しいことは過去の動画を参考にしてください。

We've covered building and deploying apps with HEROKU many times, so check out to the past videos for details.

HEROKU CLIを使ってPowerShellからログインします。

​Log in from PowerShell using the HEROKU CLI.

heroku login

いつものようにrequirements.txtを作成しますが、今回はpandasを使用しているので、numpyも一緒にインストールできるようにしておいてください。

​We create requirements.txt as usual, but this time we use pandas, so We have to install numpy as well.

requirements.txt
click==7.1.2
Flask==1.1.2
gunicorn==20.0.4
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
python-dateutil==2.8.1
pytz==2020.1
Werkzeug==1.0.1
numpy==1.18.5
pandas==1.1.1

そして、Procfileも通常通りに作成しておきます。

​Then create the Procfile as usual.

Procfile
web: gunicorn application:app --log-file=-

Debugの設定をスクリプトから消します。

​Removes Debug settings from the script.

application.py
if __name__ == "__main__":
#    app.run(debug=True)
     app.run()

gitの設定をします。

​Configure git.

git init
heroku git:remote -a 'your heroku app name'
git add .

Windowsで作成したテキストファイルの改行コードはCRLFなので、このような警告文が出る場合があります。

​A text file created on Windows uses CRLF as the line feed code, so this warning may appear.

------------------------------------------------------------------------------------------
warning: LF will be replaced by CRLF in static/bootstrap-4.5.3-dist/js/jquery-3.5.1.min.js
The file will have its original line endings in your working directory

これは前回にBootstrapとJQueryのソースコードを外部から作業用ダイレクトリに移動したことが原因です。

​This is due to the last time We moved the Bootstrap and JQuery source code from outside to the working directory.

Git for windowsではgitが自動的にUNIX環境での改行コードLFをCRLFに変換してくれます。

In Git for windows, git automatically converts line feed LF in UNIX environments to CRLF.

つまりBootstrapとJQueryのソースコード内の改行コードがLFだったことが主な原因です。

This is mainly because the line-feed code in the Bootstrap and JQuery source code was LF.

別に一人で使ってるし、遊びの為のアプリのデプロイではそこまで気にする必要が無いため、自動変換機能をFalseにして、警告文を出さないようにしておくことにします。

​I use it alone, and I don't think also you need to worry about it so much when you deploy an app for fun, so I'll set the auto-conversion feature to False to avoid warning messages.

git config --global core.autoCRLF false

後はいつも通りにHEROKUの指示通りにgitを使ってアプリをデプロイしたら、指定されたURLにアクセスしてみましょう。

​After deploying the app using git as HEROKU told you to do as usual, try accessing the specified URL.

git commit -am "It is an application to calculate income tax and resident tax of salaried workers."
git push heroku master

その後は好きなように色々な収入金額を入力してみて、遊んでみてください。

​After that, please input various income amounts as you like and play with it.

お疲れさまでした。次は個人事業主等の場合の所得税や住民税、国民健康保険を計算するアプリを作って、今回作ったアプリと併用して使えるようにしてみましょう。

Thank you for your hard work. Next, let's make a tool to calculate income tax, resident tax and national health insurance for individual business owners etc. and use it together with the app we made this time.

給与所得者税金計算/
    .git
    scripts/
        taxcalculator.py
    static/
        bootstrap-4.5.3-dist/
            css/
            js/
        js/
            calculateSiAjax.js
            calculateTaxAjax.js
    templates/
        application.html
        index.html
    application.py
    Procfile
    requirements.txt
    保険料表.csv


以上です。お疲れ様です。

That's all. Thank you for your hard work.