2
1

More than 3 years have passed since last update.

【Mac】ReactとPython flaskを使ったWebアプリ

Posted at

Reactの基本的な勉強を済ませ、簡易アプリのソースを読んで知見を蓄え中の身です。本記事は、下記の記事に触発され、愛用しているMacbookのローカル環境で実行した時のメモです。

どんなアプリ?

mecabを使った分かち書きスクリプトを使って、フロントで受け取った入力テキストをサーバー側で分かち書きをし、その結果をフロントで表示するという非常にシンプルなアプリです。

どんな構成?

フロント側はReact、サーバー側はpython flaskで実装しています。

実装環境

macOS Big Sur 11.2.3
Python: 3.9.6
flask==1.0.2

npm: 7.20.3

1. Mecabのインストール

日本語の形態素解析エンジン"MeCab"をMacにインストールしてPython3から利用します。

$ brew install mecab
$ brew install mecab-ipadic
$ brew install git curl xz yarn

$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
もしくは
$ git clone --depth 1 git@github.com:neologd/mecab-ipadic-neologd.git

$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n
$ brew install swig

これでmecab-python3をpip installできるようになりました。

2. ソースをgit clone

mecab-ipadic-neologdフォルダ内にいる場合は、別フォルダに移動した方が良いでしょう。ここでは親フォルダに移動します。その後、ソースコードをgit cloneします。

$ cd ..
$ git clone https://github.com/Pu-of-Parari/jparser_app.git
$ cd jparser_app
$ ls
README.md   backend     frontend    ref

3. サーバー側の準備

まだ動きません。python3の仮想環境内で必要なモジュールをインポートします。

いま、jparser_appフォルダ内にいます。
$ cd backend

venvという名前で仮想環境を作成します。
$ python3 -m venv venv
$ source venv/bin/activate

一応、pipをアップグレードします。
$ python3 -m pip install --upgrade pip

requirements.txtを用いて、必要なモジュールをインストールします。
$ pip install -r requirements.txt

手順1を飛ばし、homebrewでmecabをあらかじめインストールしておかないと、ここでエラーが出るでしょう。

4. バックエンドのサーバを立てる

いま、backendフォルダ内にいます。
$ python3 server.py

問題が起きなければ、これでバックエンドサーバの準備は完了です。

5. フロントエンドのサーバを立てる

まず、フロントエンド用に先ほどとは別のターミナルを立ち上げてください。立ち上げたら、jparser_app/frontend/appフォルダに移動します。

$ cd jparser_app/frontend/app

axiosがインストールされていない場合は、axiosをインストールします。
$ npm install axios

node_modulesフォルダを作成します。
git cloneした場合、node_modulesフォルダは基本的にありません。
local環境に依存するため、通常は.gitignoreで無視します。
$ npm install

フロントエンドサーバを立てます。
$ yarn start

これでフロントエンドサーバの準備は完了です。

そして、全ての準備が完了です。お疲れさまでした。

localhost:3000にアクセス

ブラウザからlocalhost:3000にアクセスします(yarn startで自動で開きます)。

app screenshots

app_1.png
スクリーンショット 2021-08-09 22.29.52.png

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1