Python最速ウェブ開発


[前回](https://qiita.com/MariMurotani/items/e8d9704a16d0bba18cd3)はdjangoを使って3時間でウェブアプリを作ってみました。
今度は、[Python anywhere](https://www.pythonanywhere.com/)を使ってPythonの最速ウェブ開発に挑戦してみます！

![スクリーンショット 2017-12-25 13.12.44.png](https://qiita-image-store.s3.amazonaws.com/0/89997/966e4f1a-c149-9dc2-8cae-b10f383045de.png)

:point_up:まずはアカウント作成をしてサインアップしましょう!
1. EC2をベースのホスティングが手軽にできる
2. ウェブ上のエディタから開発可能
3. エディタには構文チェッカーとライブラリがフルセットで装備されてる
4. developperチームとお話できる(海外製品のこういうとこはいいですね)
5. フリーでアカウント作成可能

:point_up_tone2:フリーアカウント注意点: 
1. 作成可能な子アカウントの数が1ユーザーに制限されている
2. アプリからのインターネットアクセスは帯域制限されている
3. CPU/帯域がロースペック
9. IPython/Jupyter notebookはサポート対象外

# 1.サインアップ
1. サイトからアカウント作成しましょう
2. いきなりチュートリアル始まるので適当にすすめます
3. djangoのチュートリアルを進めたいにチェックしちゃいました

![スクリーンショット 2017-12-25 13.30.19.png](https://qiita-image-store.s3.amazonaws.com/0/89997/f2bccc74-e21b-1bd6-e319-d4e64fa22ed1.png)

# 2.ダッシュボード
1. Consoles - コンソールが開きます
2. Files - /homeユーザー名以下のファイルが閲覧編集できます
3. Notebooks - 無料アカウントではサポートされてません
4. WebApps - ウェブアプリを作成できます

# 3.ウェブアプリ作成
![スクリーンショット 2017-12-25 13.37.45.png](https://qiita-image-store.s3.amazonaws.com/0/89997/825b04ef-79c4-b8cc-fa4f-1bdd2f6e7ca4.png)
1. WebAppsをクリックして指示に従っていきます
2. 無料だとオリジナルのドメインが使えないです
3. フレームワークはDjango,Python 3.6を選びます
4. Project Name: mystic, Directory: /home/marimurotani/を選びます
5. これでインスタンスが作成されます
6. 出来上がったドメイン(http://marimurotani.pythonanywhere.com/)にアクセスすると早速フレームワークの初期画面が見れます
![サーバー画面.png](https://qiita-image-store.s3.amazonaws.com/0/89997/14442fba-54d8-6fb3-5a49-fa22a2ac5fca.png)

**注意事項**
少なくとも3ヶ月に1回はログインをして本日より3ヶ月インスタンスを起動したままにするボタンを押さないといけません
「Run until 3 months from today」をポチりましょう

# 4.DB作成
実際にコードを書き始める前にMySQLをセットアップします
画面右上のDatabasesをクリックして、パスワードを入力、Initialize MySQLボタンを押します
![スクリーンショット 2017-12-25 13.53.12.png](https://qiita-image-store.s3.amazonaws.com/0/89997/35fc92d2-5639-8123-df68-319af6bb616b.png)
1. 無料だとMySQLのコンソール機能が使えません
2. Create a databaseにmysiteと入力して「Crete」ボタンを押します
2. Database host address: Username:と先ほど入力したパスワードを覚えておきましょう

# 5.DBの設定をする
画面上部のメニューからWebに戻ってCodeのところを参照します
Go to directoryリンクがあるのでそこからSource codeへ遷移しましょう

接続設定を書き込みます

```python:mysite/mysite/settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'MariMurotani$mysite',
        'USER': 'xxxxx',
        'PASSWORD': 'xxxxx',
        'HOST': 'MariMurotani.mysql.pythonanywhere-services.com',
        'PORT': '',
    }
}
```

Webのサーバーダッシュボードに戻って「Reloadサーバー名」ボタンを押しましょう！

# 5. Adminサイトの設定をする

Consolesメニューからbashにログインしましょう

まずはMigrateを実行してDBを初期化します

```sh
python3 manage.py migrate
```

<img width="698" alt="スクリーンショット 2017-12-25 14.43.32.png" src="https://qiita-image-store.s3.amazonaws.com/0/89997/65ac0400-3108-bd66-534a-7db4e495e62a.png">

スーパーユーザー作成します

```sh
python3 manage.py createsuperuser
```
![スクリーンショット 2017-12-25 14.44.11.png](https://qiita-image-store.s3.amazonaws.com/0/89997/8256a4fc-588e-45c0-e281-ec2eeb9cdec4.png)


Adminサイトへアクセスして先程作成したユーザー名、パスワードを入力してログインします
http://marimurotani.pythonanywhere.com/admin/

![スクリーンショット 2017-12-25 14.46.48.png](https://qiita-image-store.s3.amazonaws.com/0/89997/2b706f78-12dc-68f4-e114-480ae864b909.png)

こんな感じで、サーバーの準備〜Admin画面のインストールまで一気に終了しました！
ここからはモデルをどんどん増やしてAPIを追加したりどんどん作業が進む事でしょう！

追伸:
本当はデプロイツールを探してたのですが面白そうなので試してみました
デプロイもいい方法をなんか考えて行きましょう



# ついでに・・・・
[Word2vecのwikipedia学習済みモデル](http://aial.shiroyagi.co.jp/2017/02/japanese-word2vec-model-builder/)を公開している人がいたので、データを拝借してAPIを作ってみました。
posiに足す言葉、negaに引く言葉を入れてみましょう。このままだと割りと使い物にならないという事が判明しました。

```
http://marimurotani.pythonanywhere.com/api/r1?posi=就活,新卒,成功&nega=男性
```