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
+ # ノートアプリケーション
2
2
3
3
[ ![ 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 )
4
4
5
5
![ ノート] ( note-app.png " ノート ")
6
6
7
- ## make python virtualenv and activate
7
+ ## これは何ですか?
8
8
9
- ```
10
- python3.6 -m venv venv
11
- source venv/bin/activate
12
- ```
9
+ テキストを編集、保存できるシンプルなウェブアプリケーションです。
13
10
14
- ## install python modules
11
+ バックエンドとなるAPIサーバーにはDjangoフレームワーク(Python)、フロントエンドにはVue.js(JavaScript)を使っています。
15
12
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
+ # クライアントアプリケーション
2
2
3
- ## install node packages
3
+ ## Node.JSのパッケージをインストールする
4
4
5
5
```
6
6
npm i
7
7
```
8
8
9
- ## bulid
9
+ ## アプリケーションのビルド
10
10
11
11
```
12
12
npm run webpack
13
13
```
14
14
15
- ## watch build
15
+ ## ファイルの変更を検知してビルド
16
16
17
17
```
18
18
npm run webpack -- -w
19
19
```
20
20
21
- ## clean
21
+ ## ビルドされたファイル群の削除
22
22
23
23
```
24
24
npm run clean
25
25
```
26
26
27
- ## run test
27
+ ## テストコードの実行
28
28
29
29
```
30
30
npm t
Original file line number Diff line number Diff line change 1
- # Note API Server
1
+ # APIサーバー
2
2
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 ` コマンドでデータベースファイルが作成され、マイグレーションも実行されます。
4
23
5
24
```
6
25
./manage.py migrate
7
26
```
8
27
9
- ## create user
28
+ ## ユーザーの作成
29
+
30
+ このアプリケーションはDjangoの標準機能を使用したユーザー認証があります。管理者となるユーザーはcreatesuperuserコマンドで作成します。
10
31
11
32
```
12
33
./manage.py createsuperuser
13
34
```
14
35
15
- ## runserver
36
+ ## 開発用サーバーの起動
37
+
38
+ 開発用サーバーは ` runserver ` コマンドで起動します。
16
39
17
40
```
18
41
./manage.py runserver
File renamed without changes.
You can’t perform that action at this time.
0 commit comments