最近の世の中の流行りに押されて、pythonを少々お勉強しています。「予測に生かす統計モデリングの基本」とか「Pythonによる統計学入門」「ベイズ統計入門」とかベイズ統計と一緒にpythonも復習と思ったのですが、ベイズ統計の方がムズくて頓挫。
では、pythonでweb書いてみようとドキュメントに従って書いてみました。 (今、自宅近辺の温度湿度を表示させるweb appがphpなので、将来的にpythonにしようかな?と思い、その為の予習のつもりで勉強しています。 データのグラフ化のライブラリはpythonにも対応しているので、少しpythonで書き換えれば動くものが作れるはず!!)
pythonではDjangoってweb frameworkがあるようなので、このドキュメントに従って、サンプルアプリを作ってみました。 DjangoにはDBとしてsqlite3が付いていますが、将来実装する時の手間を考え、既に使用しているpostgresを使う事にしました。
0)Pythonの開発用仮想環境を構築する
取り敢えず、application_environmentというフォルダを作って、ここに開発環境をココできての説明に従い作ってみました。python -m venv application_environmentでapplication_environmentが出来、source ./bin/activateでこの環境を使った開発が出来るようになるみたいです。(python開発関連の165 directories, 1357 filesが出来ていました)
このディレクトリで、 pip install djangoとして、djangoをインストール
更に、django-admin startproject mysite でmysiteというフォルダを作りこのフォルダの中で作業をしました。 この作業でmysite配下に左のようなファイル構造が出来上がります。 これ以降はmanage.pyで色々な作業が出来るみたいです。1)DjangoでPostgreSQLを使えるようにする。
ここの説明に従いpostgreSQLにDjangouserを作成して、djangoからのアクセスが出来るようにしてみましたが、
$python manage.py migrations; python manage.py migrate
で失敗して、うまくdatabaseが作成できていませんでしたので、PgAdmin4 v7でpostgresqlの中を覗いて見た所djangouserに create database権限が与えられていないようなので、これを設定して無事djangoからpostgresqlに接続設定できるようになりました。
2)Django のtutorialに従い簡単なアプリを作成してみました。
1~6までをまじめにフォローしながら、逐一実行、確認してゆきました。DBの作成がmodels.pyにDBの仕様を書き、python manage.py migrateで行うと、関連する テーブルが自動で作成されていますが、QuestionとChoiceの二つのテーブル作成に対して、全部で12のテーブルが作成されていました。(うーん、何に使うんだろう?) 夫々の詳細な内容はtutorialを参照してください。
データベースが出来た所で、python manage.py shellでpythonのコマンド入力でデータベースの内容を参照したり、書き換えたりすることが出来るのは、とても面白い機能ですね。
python manage.py runserver を適当な窓で実行してブラウザで当該ページにアクセスしてみると左の様にサーバログが表示され、テスト環境でのチェックがスムーズに出来そうです。
また、on the flyでファイルを書き換えても、書き換えた内容が即座に反映されている(一部、そうでない場合があったような気がしますが、??)のと、書き換えたファイルにエラーがあるとログにエラー内容が表示されるので、小さな修正などが簡単に出来そうです。
右では、赤で囲った部分から、typoエラーが示されており、これを修正してファイルを上書きすると、そのままサーバがチェックしてくれて、今度は待ち受け状態になって起動しています。
また、作成されるファイルシステムの中にtests.pyがあり、ココに必要なソースを書いておけば、いつでも走らせて検証することが出来る(初めから検証プログラムが書かれることを前提としている)のは非常に優れている(というか、今様)な仕様だと思います。
ま、WEB Frameworkってどれも、ファイル構造が大きく、幾つも似たようんファイルが作られるので、鬱陶しいと思っていますが、djangoも同じですので、慣れるより仕方ないですね。
tutorialに従って作成したpollsの最終的なファイル構造は下の様になっていました。
このうち弄っているファイルは、
models.py,
tests.py,
urls.py,
views.py,と
static/polls/style.css,
static/polls/images/xxx,
templates/polls/(detail,index,results).html
です。
0 件のコメント:
コメントを投稿