Flaskと呼ばれるのWebフレームワークを使ってAngularJSのアプリケーションを開発します。Flaskは、Pythonの軽量Web開発フレームワークです。一から構築するのではなくやはりYEOMANジェネレータを利用します。このエントリーは「AngularJS Advent Calendar 2014」12月21日の記事です(やっと書きました)。
AngularJS Advent Calendar 2014 - Qiita
Flask
先にも述べたとおりFlaskはPythonのマイクロWeb開発フレームワークです。
Welcome | Flask (A Python Microframework)
この日本語サイトもあるので是非目を通してください。
Flaskへ ようこそ — Flask v0.5.1 documentation
インストール
generator-angular-flaskをnpmインストールから始めます。YEOMANに関する説明はここでは省略します。
$ npm install -g generator-angular-flask $ mkdir angular-flask && cd $_ $ yo angular-flask +-+-+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ |a|n|g|u|l|a|r| |f|l|a|s|k| |g|e|n|e|r|a|t|o|r| +-+-+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ [?] What is the name of your application? myapp … $
ここまで終わったらpythonを使ってツールのインストールを開始します。
$ ./install.sh New python executable in flask/bin/python Installing setuptools.............................done. Installing pip.................... … $
インストールが完了したら起動します。起動コマンドを実行するとアプリケーションサーバが起動します。画面は次の通り。
$ flask/bin/python run.py
画面を追加する
新しく画面を追加します。エンティティを作成しデータベースを生成すれば完了です。
$ yo angular-flask:entity hoge You called the entity subgenerator with the argument hoge. Please specify an attribute: [?] What is the name of the attribute? fuga [?] What is the type of the attribute? String [?] Enter the minimum length for the String attribute, or hit enter: 4 [?] Enter the maximum length for the String attribute, or hit enter: 12 [?] Is the attribute required to have a value? Yes [?] Would you like to enter another attribute or reenter a previous attribute? Yes Please specify an attribute: [?] What is the name of the attribute? piyo [?] What is the type of the attribute? Date [?] Constrain the date as follows: None [?] Is the attribute required to have a value? Yes [?] Would you like to enter another attribute or reenter a previous attribute? (Y/n) n $ flask/bin/python db_create.py
再び画面を起動します。メニューに「hoge」が追加されてるのがわかります。
$ flask/bin/python run.py
hoge 画面を触ってみる
hoge画面を触ってみます。ここまでコーティングせずAngularJSの実装とPythonの実装までされています。
※ 入力桁が大きすぎるとエラーメッセージが表示されます
※ 入力桁が小さいとエラーメッセージが表示されます
※ 日付入力ではカレンダーが表示されます
※ データが入力された状態です
最後に
AngularJS + Python のフルスタックWebアプリケーションをご紹介しました。YEOMANではこれ以外にも・・・AngularJS Advent Calendarでした。そっそいうことです。