SPAの学習用サンプル(Angular2 + Bootstrap / App Engine/Python + webapp2)
最近、無職になって時間があり余っているため、このようなものを作ってみた次第です。
ダウンロード
BBS-SPA
ここにあります→https://github.com/syousei/bbs-spa
特徴
BBS-SPAはSPA(Single Page Application)のサンプルです。
クライアントサイドはAngular2 + Bootstrapを、サーバーサイドはApp Engine/Python + webapp2を使用しています。
機能
- ユーザー登録・認証(ログイン/ログアウト)※JWT(JSON Web Token)認証を採用
- トピックの投稿
- トピックへのコメント
セットアップ
前提
先に以下をセットアップしておいてください。
- Python 2.7
- Google Cloud SDK / Python
- Node.jsとnpm
- Angular CLI
npm install -g @angular/cli
この記事にご興味を持たれた方は、このあたりは大体できていると思いますが。
BBS-SPAのセットアップ
上記よりダウンロードしたBBS-SPAを適当な作業フォルダに展開します。
すると、bbs-spa-client
とbbs-spa-server
という2つのフォルダが現れます。
ご想像のとおり、bbs-spa-client
にはAngular2 + Bootstrapで作られたクライアントサイドのファイルが、bbs-spa-server
にはApp Engine/Python + webapp2で作られたサーバーサイド(API)のファイルがそれぞれ格納されています。
それではターミナル(コマンドプロンプト)を開いてbbs-spa-client
に移動し、npm start
コマンドを実行してください。
以下のメッセージが表示されたら問題ありません。
** NG Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200 **
(省略)
webpack: Compiled successfully.
次にGoogle Cloud SDK Shellを開いてbbs-spa-server
に移動し、dev_appserver.py app.yaml
コマンドを実行してください。
以下のメッセージが表示されたら問題ありません。
Starting module "default" running at: http://localhost:8080
admin_server.py:116] Starting admin server at: http://localhost:8000
pytzとpyjwtのインストール
bbs-spa-server
の直下にlib
というフォルダを作成し、pytz
とpyjwt
をインストールしてください。
よくわからなければ、それぞれ次のURLからダウンロードして、解凍すると出てくるpytz
とpyjwt
という名前のフォルダをbbs-spa-server/lib
の中に放り込めばOKです。
以上でセットアップ完了です。
ブラウザでhttp://localhost:4200
を開いてみましょう。会員登録制の掲示板が使えるようになっていると思います。
もし登録したユーザー情報や投稿内容を編集・削除したい場合は、http://localhost:8000
でApp Engineの管理コンソール(ローカル版)が開きます。
動作について
本来ならサーバーサイドスクリプトとクライアントスクリプトが同じホスト上に置かれるわけですが、ローカルで動かすにあたってAngular2の開発サーバーとApp Engineの開発サーバーをそれぞれ別に起動しなければならないため、別々のフォルダに格納しています。
実際にApp Engineにデプロイしてみたい場合は、bbs-spa-client
のビルド先をbbs-spa-server
の中の静的ファイルを格納するフォルダ(例えば /static_files/distなど)に設定してあげる必要があります。
そのあたりをご理解の上、学習用にお使いいただければと思います。
ご質問などあればコメントしてください。
また、これを作るにあたってAngular2やTypeScriptをほぼ初めて使ってみたので、いろいろと不格好なところがあると思います。
もしお気づきの点があればコメントで助言いただけるととても嬉しいです。
以上です。
参考にしたドキュメント
- How-to Guides | App Engine standard environment for Python | Google Cloud Platform
- Welcome to webapp2! — webapp2 3.0.0b1 documentation
- Angular - QuickStart
- Angular 2/4 User Registration and Login Example & Tutorial | Jason Watmore's Blog
- JWT Authorization in Python, Part 1: Practise.
- Bootstrap · The world's most popular mobile-first and responsive front-end framework.
- Angular2でComponentをまたがったデータのやり取り - Carpe Diem
- Angular の基礎 - Angular 入門
- 必ず覚えておきたい! Angular2でコンポーネントの子要素を参照する方法 - イソップブログ
- Angular2のLifecycle Hooksを理解する - イソップブログ
Author And Source
この問題について(SPAの学習用サンプル(Angular2 + Bootstrap / App Engine/Python + webapp2)), 我々は、より多くの情報をここで見つけました https://qiita.com/syousei/items/9ea5ac2cbdceb57ba106著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .