Flask - 2. Flask-RESTful
仮想環境の設定
設定
ショートフィルタ()
Flask-JWT
設定
HTTPヘッダライセンスにJWT[Toake]送信と書くべき!
ログインが必要な機能の設定
Flask-RESTful公式ドキュメントでは、2.0版からすべての解析器機能が消失する可能性があると警告されています.
pip install vritualenv
# 활성화
source venv/bin/activate # 맥, 리눅스
./venv/Scripts/activate.bat # 윈도우즈
# 비활성화
deactivate
Flask-RESTful設定
# flask도 같이 설치된다.
pip install Flask-RESTful
使用from flask import Flask, request
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class Item(Resource):
def get(self, name): # Path Parameter
...
return {'result': name}, 200 # JSON return, Status Code
def post(self, name):
data = request.get_json()
pass
api.add_resource(Item, '/item/<string:name>')
app.run(port=5000, debug=True)
Resource
のクラスを継承する関数名はHTTPメソッドの役割を果たす.debug=True
を設定すると、コードを変更して保存し、自動的に再起動します.request.get_json(silent=True)
JSONパケットに到達するとNoneに戻る.ショートフィルタ()
filter(조건 함수, 순회 가능한 데이터)
filter(lambda x: x['name'] == name, items)
next(filter(lambda x: x['name'] == name, items))
イテレーションnext()
に戻るFlask-JWT
設定
pip install Flask-JWT
使用# security.py
from werkzeug.security import safe_str_cmp
def authenticate(username, password):
user = DB에서 유저 가져오기
if user and safe_str_cmp(user.password, password):
return user
def identity(payload):
user_id = payload['identity']
return DB에서 유저 가져오기 by user_id
# app.py
from flask_jwt import JWT
from security import authenticate, identity
app.secret_key = 시크릿키설정
jwt = JWT(app, authenticate, identity)
app.py
の最後のコードは、/auth
エンドポイントを自動的に生成する.ユーザは、ユーザ名とパスワードをauthenticate
関数に送信して認証し、JWTトークンを返す.ユーザが送信したトークンを送信すると、identity
関数を使用してトークンに含まれる情報(ここではuser_id
)を検索することができる.HTTPヘッダライセンスにJWT[Toake]送信と書くべき!
ログインが必要な機能の設定
from flask_jwt import jwt_required
@jwt_required()
def get(self, name):
pass
Flask-RESTful JSON Parserfrom flask_restful import reqparse
class Item(Resource):
parser = reqparse.RequestParser()
parser.add_argument('price', type=float,
required=True, help='This field cannot be blank!')
def put(self, name):
data = Item.parser.parse_args()
...
parser.add_argument()
に登録されている鍵しか使用できません.Flask-RESTful公式ドキュメントでは、2.0版からすべての解析器機能が消失する可能性があると警告されています.
Reference
この問題について(Flask - 2. Flask-RESTful), 我々は、より多くの情報をここで見つけました https://velog.io/@choonghee-lee/Flask-2.-Flask-RESTfulテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol