File tree Expand file tree Collapse file tree 4 files changed +90
-20
lines changed Expand file tree Collapse file tree 4 files changed +90
-20
lines changed Original file line number Diff line number Diff line change 1- # Note application
1+ # ノートアプリケーション
22
33[ ![ Build Status] ( https://travis-ci.org/tokibito/note-app-django-vue-javascript.svg?branch=master )] ( https://travis-ci.org/tokibito/note-app-django-vue-javascript )
44
55![ ノート] ( note-app.png " ノート ")
66
7- ## make python virtualenv and activate
7+ ## これは何ですか?
88
9- ```
10- python3.6 -m venv venv
11- source venv/bin/activate
12- ```
9+ テキストを編集、保存できるシンプルなウェブアプリケーションです。
1310
14- ## install python modules
11+ バックエンドとなるAPIサーバーにはDjangoフレームワーク(Python)、フロントエンドにはVue.js(JavaScript)を使っています。
1512
16- ```
17- pip install -r requirements.txt
18- ```
13+ DjangoフレームワークとJavaScriptでアプリケーションを作るサンプルコードとして作成しました。
14+
15+ 以下の要素を含んでいます:
16+
17+ * バックエンド
18+ * Python3
19+ * venv
20+ * Djangoフレームワーク
21+ * Django REST Framework
22+ * フロントエンド
23+ * Babel
24+ * webpack
25+ * Vue.js
26+ * Bootstrap
27+ * Font Awesome
28+ * mocha
29+ * power-assert
30+
31+ ## 構成
32+
33+ * ` note_server `
34+ * バックエンド(Pythonで動作するAPIサーバー)
35+ * ` note_client `
36+ * フロントエンド(webpackでビルドし、Djangoフレームワークのstaticfilesモジュールから配信される)
37+ * CSS(Sass)も含む
38+
39+ ## 動かしてみる
40+
41+ 1 . ` note_client ` をビルドする
42+ 2 . ` note_server ` を起動してブラウザでアクセスする
43+
44+ ## 設計について
45+
46+ アーキテクチャとモジュール構成に関して考えた点など:
47+
48+ * シングルページアプリケーション(SPA)にはせず、DjangoのサーバーサイドレンダリングとVue.jsを組み合わせて使う
49+ * ビルドしたファイルの配信は、Djangoフレームワークのstaticfilesに任せる
50+ * Vuexはなるべく使わない
51+ * 依存をなるべく減らす気持ち
52+ * Vuexは学習コストもメンテコストも高いので、使わないで済むうちは使わない
53+ * 複雑になったら使ったほうが楽できるとは思います
54+ * vue-cliを使っていない
55+ * ごちゃっと余計なものが入るのを避ける
56+ * 使うツールスタックを合わせられるなら使ってもよいかな
57+ * Vueへの依存をなるべく広げない
58+ * Vueに依存しないほうがテストコードを書きやすいから
59+ * Vueインスタンスをエントリポイント(index.js)外のJavaScriptコードに渡さない
60+ * エントリポイントではVueに依存しないコントローラクラスのインスタンスを生成し、データはコントローラに持たせる
61+ * 規模が大きくなったらストアを用意するかも
62+ * コンポーネントから外へVueインスタンスを渡さない
63+ * django-webpack-loaderを使っていない
64+ * なるべく依存を増やさない
65+ * 必要になったら入れよう
Original file line number Diff line number Diff line change 1- # Client Application
1+ # クライアントアプリケーション
22
3- ## install node packages
3+ ## Node.JSのパッケージをインストールする
44
55```
66npm i
77```
88
9- ## bulid
9+ ## アプリケーションのビルド
1010
1111```
1212npm run webpack
1313```
1414
15- ## watch build
15+ ## ファイルの変更を検知してビルド
1616
1717```
1818npm run webpack -- -w
1919```
2020
21- ## clean
21+ ## ビルドされたファイル群の削除
2222
2323```
2424npm run clean
2525```
2626
27- ## run test
27+ ## テストコードの実行
2828
2929```
3030npm t
Original file line number Diff line number Diff line change 1- # Note API Server
1+ # APIサーバー
22
3- ## migrate
3+ Djangoフレームワーク、Django REST Frameworkを使っています。
4+
5+ ## virtualenvの作成、有効化
6+
7+ ```
8+ python3.6 -m venv venv
9+ source venv/bin/activate
10+ ```
11+
12+ ## Pythonモジュールのインストール
13+
14+ virtualenvを有効にした状態で、pipコマンドでインストールします。
15+
16+ ```
17+ pip install -r requirements.txt
18+ ```
19+
20+ ## データベースファイルの作成とマイグレーション
21+
22+ データベースはデフォルトのSQLite3を使います。 ` migrate ` コマンドでデータベースファイルが作成され、マイグレーションも実行されます。
423
524```
625./manage.py migrate
726```
827
9- ## create user
28+ ## ユーザーの作成
29+
30+ このアプリケーションはDjangoの標準機能を使用したユーザー認証があります。管理者となるユーザーはcreatesuperuserコマンドで作成します。
1031
1132```
1233./manage.py createsuperuser
1334```
1435
15- ## runserver
36+ ## 開発用サーバーの起動
37+
38+ 開発用サーバーは ` runserver ` コマンドで起動します。
1639
1740```
1841./manage.py runserver
File renamed without changes.
You can’t perform that action at this time.
0 commit comments