2022-10-13

flask

python

Posted by

applemango

最終更新: 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に必要な機能を付けるだけです

このドキュメントどう?

emoji
emoji
emoji
emoji