2022-10-13
Posted by
最終更新: 2023-03-05
さぁ,今回は本当にいよいよflaskのHello, world!を実行しましょう
まず
前回作ったapiに移動します、前回から続けてやっている場合は必要ありません
pathは変更してください
A:/abc>cd A:\abc\osaka\main\api
apple@apple ~ % cd /abc/osaka/main/api
移動したら前回作った仮想環境を起動します
A:/abc/osaka/main/api>venv\Scripts\activate
(venv) A:\abc\osaka\main\api>
apple@apple api % source venv/bin/activate
(venv) apple@apple api %
info
仮想環境からは
(venv) A:\abc\osaka\main\api>deactivate
または
(venv) apple@apple api % deactivate
で出れます
上手くは入れれば A:\abc\osaka\main\api>
から (venv) A:\abc\osaka\main\api>
のように最初に(venv)
がつきます
これからbackendのコマンドは特に記載がない場合仮想環境で実行します
さていよいよプログラムを書いていきましょう
api直下にapp.pyを作成しましょう
main
page
api
venv
app.py
中身は以下の様にを記述してください
import os #pathの取得などに使う
import json #何かと使う
from flask import Flask # flaskを使うのに絶対必要
from flask import jsonify # jsonを送るのに使う
from flask import request # queryなどを取得するのに使う
from flask_cors import CORS, cross_origin#crosの設定
from flask_sqlalchemy import SQLAlchemy#databaseを使うために必要
さてこのプログラムを実行するとエラーが出ます
(venv) A:\abc\osaka\main\api> python app.py
Traceback (most recent call last):
File "A:\abc\osaka\main\api\app.py", line 4, in <module>
from flask import Flask
ModuleNotFoundError: No module named 'flask'
エラーを解決する為にはライブラリをインストールする必要があります
さぁ、インストールを始めましょう
と言ってもcommandを実行するだけです
(venv) A:\abc\osaka\main\api>pip install flask
(venv) A:\abc\osaka\main\api>pip install flask_cors
(venv) A:\abc\osaka\main\api>pip install flask_sqlalchemy
(venv) apple@apple api % pip install flask
(venv) apple@apple api % pip install flask_cors
(venv) apple@apple api % pip install flask_sqlalalchemy
さぁこれで実行できるようになりました
実行しましょう
(venv) A:\abc\osaka\main\api>python app.py
(venv) A:\abc\osaka\main\api>
(venv) apple@apple api % python app.py
(venv) apple@apple api %
と、なり無事実行出来ました
ですが少し寂しいですね
Hello, world!を返すprogramを付けたしましょう
1
2
3
4
5
6
7
8
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
import os #pathの取得などに使う
import json #何かと使う
from flask import Flask # flaskを使うのに絶対必要
from flask import jsonify # jsonを送るのに使う
from flask import request # queryなどを取得するのに使う
from flask_cors import CORS, cross_origin#crosの設定
from flask_sqlalchemy import SQLAlchemy#databaseを使うために必要
app = Flask(__name__, instance_relative_config=True) # アプリの作成
@app.route("/") # 127.0.0.1/ にアクセスされたとき
def hello_world(): # に実行する関数
return jsonify("Hello, world!") # hello, world! に送り返す
#例えば /oumu-gaesi/helloなら say 'hello' を返す
@app.route("/oumu-gaesi/<text>") # 127.0.0.1/oumu-gaesi/<text> にアクセスされたとき(127.0.0.1/oumu-gaesi/ は404になる
def oumu_gaesi(text): # に実行する関数
return jsonify("say '{}'".format(text))
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000) # アプリの実行
@app.route
はhello_word()
などのその下にある関数のデコレーターですデコレーターは下にある関数を装飾することが出来ます
今回では 127.0.0.1/ にアクセスすると hello_world()
が 127.0.0.1/oumu-gaesi/<text> にアクセスすると oumu_gaesi()
が実行されます
実行されるとそれぞれ jsonify()
がjsonを返します
引数などを受け取ることもできます@app.route("/users/<int:id>")
実行したら以下のようになるはずです
info
Ctrl + C で抜けられます
(venv) A:\abc\osaka\main\api>python app.py
* Serving Flask app 'app'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://192.168.1.2:5000
Press CTRL+C to quit
(venv) apple@apple api % python app.py
* Serving Flask app 'app'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://192.168.1.36:5000
Press CTRL+C to quit
表示されているhttp://127.0.0.1:5000 にアクセスすると"Hello, world!"と表示されるはずです
サーバが実行されていればsubmitを押せば"hello, world!"と帰ってくるはずです
warning
サーバーが実行されている必要が有ります
もう一つの方も試して見ますか?
これで準備は整いました
後はbackendに必要な機能を付けるだけです
このドキュメントどう?