ここでは、Pythonにおけるアプリ(アプリケーション)について概要を解説しています。
どんなライブラリがあるのか紹介しています。
この記事の対象
アプリ(アプリケーション)とは
Pythonにおけるアプリには大きく分けると2つあります。
項目 | 内容 |
Webアプリケーション(Webアプリ) | Webブラウザを利用したアプリケーションのこと。 |
デスクトップアプリケーション(GUIアプリ) | 「電卓」などのアプリケーションのこと。 |
代表的なWeb App作成用フレームワーク
Pythonでアプリ開発を行う際の代表的なフレームワークがあります。
項目 | 内容 |
Flask | Python用のWeb開発フレームワークです。短いコードでWebアプリを実現できる特徴があります。 |
django | フルスタック型のフレームワークです。必要なものが揃っており、管理サイトでのメンテナンス機能があります。 |
py2exe/py2app | 「py2exe」はPythonをWindows用の実行ファイルに変換するライブラリです。「py2app」はMacのアプリ形式に変換するものです。 |
GUI App作成用ライブラリ
Pythonでアプリ開発を行う際の代表的なGUIライブラリが以下になります。
項目 | 内容 |
Tkinter | TktinterはPythonに標準で用意されたライブラリです。日本語での解説記事が多いので開発しやすいです。 |
PyQt | PyQtはライセンスが必要なGUIツール。こちらも日本語での解説記事が多いので開発しやすいです。 |
kivy | kivyはクロスプラットフォーム対応のGUIアプリです。無料で使用できますが、日本語での解説記事が少ないです。 |
実際に動かしてみる
Tkinterで画面を作成
from tkinter import *
root = Tk()
#1---titleの指定
root.title("Test")
#2---サイズの指定
root.geometry('200x200')
#3---背景の指定
root.configure(bg="#F9E6E1")
root.mainloop()
Tkinterは標準ライブラリなので、外部ライブラリをimportすることなく利用できます。
高度なことはできないですが、単純なデスクトップアプリ作成ならこれを使用すれば十分です。
【結果】
詳しいTkinterの使用方法については以下でまとめています。ご参照下さい。
>>>Tkinterの概要
Kivyで画面作成
Kivyは外部ライブラリのため環境構築をする必要があります。詳細は以下で紹介しているのでご参照下さい。
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.widget import Widget
class MainScreen(Widget):
def build(self):
return Label(text='Hello World')
class TestApp(App):
def __init__(self, **kwargs):
super(TestApp, self).__init__(**kwargs)
self.title = 'Test'
if __name__ == '__main__':
TestApp().run()
KivyはPythonで処理内容を記述して、KV Languageという独自の言語でレイアウトを作成します。
KVファイルは以下になります。
#:kivy 1.11.1
<MainScreen>:
BoxLayout:
orientation: 'vertical'
size: root.size
Label:
id: view_label
text: 'Hello World'
MainScreen:
KivyはTkinterと比べるとGUIを凝ったものにも仕上げる事が可能です。初心者にはとっつきにくいですが、無料できれいなアプリ作成をしたい場合は選択肢になります。
【結果】
おすすめの書籍
Web App関係
・PythonフレームワークFlaskで学ぶWebアプリケーションのしくみとつくり
Flaskについて広く学べる一冊です。実際に動かすサンプルコードは少し問題がありますが、細かい知識を深めるというよりは概要を学ぶのに適切な一冊です。
Djangoのツボとコツがゼッタイにわかる本
Djangoについて広く学ぶのに適切な一冊です。こちらも細かい知識を深めるというよりは概要を学ぶのにおすすめです。実際に動かしながら体系的に学べる点が良いです。
・演習で学ぶWebサイト・Webアプリケーション制作入門
Pythonではないですが、PHPやJavaScriptなどの基本的なことを学ぶことができるので、これからWebアプリケーションを作成する方にはおすすめです。