PythonフレームワークでDjangoを少し触ってみたのですが、他のフレームワークについても知っておきたいと思い、
Pyramidというフレームワークを使ってみました。
Pyramid とは
OSSのPythonで作られているWebアプリ開発フレームワークで、Pylonsの一部として開発されています。
小さく速く堅実に開発することを目的に作られたフレームワークです。
また、1つのPythonファイルで完結するPyramidアプリケーションを作成することができるので、
プロトタイプや、バグの再現、小さなアプリケーション作成といったことを素早く行うことができます。
参考
公式ドキュメント
The Pyramid Web Framework — The Pyramid Web Framework v1.9.1
環境
環境構築
仮想環境を作成します。
$ mkvirtualenv --no-site-package --python /usr/local/bin/python3 env3
作成した仮想環境でPyramidをインストールします。
ちなみに、pip freeze
でインストールしたパッケージを確認できます。
(env3)$ pip install pyramid
公式ドキュメントに書いてあるサンプルコードを参考にして
Pythonファイルを作成します。
Hello.py
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
def hello_world(request):
return Response('<h1>Hello World!</h1>')
if __name__ == '__main__':
# インスタンスを作成
with Configurator() as config:
config.add_route('hello', '/')
# URLがhelloにマッチしたときに、hello_world関数を呼び出すよう設定
config.add_view(hello_world, route_name='hello')
# WSGI アプリケーション を作成
app = config.make_wsgi_app()
# WSGI アプリケーションとして起動
server = make_server('0.0.0.0', 6543, app)
server.serve_forever()
Pythonプログラムを実行します。
$ python hello.py
下記にアクセスすると「Hello World!」が表示されるはずです。
Pycharmからひらく
プロジェクトの作成でPyramidmを選択し、インタプリタで作成した仮想環境を選択すると
Pycharmでひらくことができます。
プロジェクトの作成
公式ドキュメントを参照したところ、cookiecutterというツールを使うと
Pyramidに限らずPythonプロジェクトの雛形を作成してくれるようです。
Creating a Pyramid Project — The Pyramid Web Framework v1.9.1
今回はこれを使ってPyramidのプロジェクトを作成したいので、cookiecutterをインストールします。
$ pip install cookiecutter
cookiecutterを使ってテンプレートを作成します。pyramid-cookiecutter-starter
などのリポジトリもあるのですが、用途によって使い分けが必要なようです。
今回はDBにSQLiteを使ったPyramidプロジェクトを作成したいので、下記リポジトリを引数に指定します。
プロジェクト名など何回か質問されるので任意の値を入力します。
��何も入力しないとデフォルト値が入ります)
$ cookiecutter gh:Pylons/pyramid-cookiecutter-alchemy --checkout 1.9-branch
...
Run your project.
env/bin/pserve development.ini
作成されたプロジェクトに入り、
テストライブラリをインストールしてテストを実行します。
$ pip install --upgrade pip setuptools
$ pip install -e ".[testing]"
$ pytest
...
pyramid_scaffold/tests.py .. [100%]
============= 2 passed in 2.13 seconds =============
データベースを初期化します。
今回はsample_dbとしていますが、データベース名は任意で変更してください。
$ initialize_sample_db development.ini
アプリケーションを実行します。
ちなみにリロードする場合は、--reload
オプションを付けて実行します。
$ pserve development.ini
Starting server in PID 26768.
Serving on http://localhost:6543
Serving on http://localhost:6543
下記URLにアクセスすると、ブラウザにPyramidの画面が表示されます。
これは、cookiecutterでまだ定義されていないアプリケーションを起動した際に、
デフォルトで表示される画面のようです。
画面右にある、Pyramidロゴをクリックするとデバッグツールバーが表示されます。
やってみた感想
Hello Worldを表示させるまでがとても簡単でした。
今回cookiecutterというツールを使いましたが、これはDjangoプロジェクトでも使うことができるようです。
cookiecutterを使うとき、最初は目的と異なるリポジトリを指定してしまい、
modelsフォルダが作成されなかったりして困ったので、指定するリポジトリには注意したいと思います。
ドキュメントが少し読みづらく手順の理解に少し時間がかかりましたが、
これから実際に簡単なアプリを作ってみて、Pyramidの理解をより深めていきたいと思っています。