読者です 読者をやめる 読者になる 読者になる

pythonでwebアプリ(pythonインストールからDB接続まで)

pythonでwebアプリを作れる環境を作りたくて、bottle、mysql-connector-pythonを試してみた。
フレームワークは他にも有力なのがあるようでまだbottleでいくかは未決定。
OS:windows8 64bit

https://www.python.org/downloads/
最新版のpython3.4.1をダウンロードして実行。python2に対し後方互換性がないようだが、
どんどん対応するライブラリが増えており、使いたいライブラリはすべてpython3に対応しているようなので、python3で決定。
インストールが完了したらc:\python34とc:\python\Scriptsへのパスを通しておく。

  • pipのインストール

使ったことがないので便利さがわからないのだが、いろんなところにpythonとセットで書いてあるのでとりあえずインストールする。
setuptoolsから(https://pypi.python.org/pypi/setuptools)
環境に応じたez_setup.pyをダウンロードする。

python ez_setup.py
easy_install pip

これで完了。

...もっと簡単にpipを入れる方法もある模様
http://qiita.com/who_you_me/items/831d62f396e6d66dda66

  • エディタのインストール

何でもよいのだが評判が良いのでPyCharm Community Editionをインストール
http://www.jetbrains.com/pycharm/download/
日本語化されてないのが難点

  • bottleのインストールと実行
pip install bottle

インストールしたら公式のチュートリアルに従って実行してみる
http://bottlepy.org/docs/dev/tutorial.html

from bottle import route, run

@route('/hello')
def hello():
    return "Hello World!"

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

とりあえずこれでサーバーが立つのでhttp://localhost:8080/helloへアクセスして確認する。
サーバーはgunicornを使うとよいとのこと

DBは既存のmysqlを使いたいのでドライバが必要。
ドライバはいろいろありすぎるよう(参考:http://www.sakito.com/2012/10/python-mysql.html
これといった性能要件もないのでmysql-connecter-pythonを使ってみることにした。
インストール

pip install mysql-connector-python

もし、--allow-externalをつけなさい、というようなエラーが出たら

pip install --allow-external mysql-connector-python mysql-connector-python

DBの方にはあらかじめテーブルを用意しておく。
以下は、DB:testのtable:table1から全データを持ってきて表示するサンプル

import mysql.connector
connect = mysql.connector.connect(db="test", host="localhost", port=3306, user="****", passwd="****")

cur=connect.cursor()
cur.execute('select * from table1')
rows = cur.fetchall()
for row in rows:
    print(row)

cur.close()
connect.close()
  • まとめ

とりあえず最低限動かすための準備はできた。
残りはやりたいことに対して必要な機能(テンプレートとかlogとか)の確認と、
そもそものフレームワークの選定。
他の候補としては実績が多いDjangoかBottleと同じく軽量なFlaskあたりを見てみる予定。