Flaskフレームワーク-10 DebugtoolbarとRestful


FlaskのDebugtoolbarとRestful


1.ページデバッグツール開発debugtoolbar


1.1インストール

pip install flask-debugtoolbar

1.2構成

from flask import Flask

from flask_debugtoolbar import DebugToolbarExtension

app = Flask(__name__)

app.debug = True

app.config['SECRET_KEY'] = ''

toolbar = DebugToolbarExtension(app)

2. restful


Flask-RESTfulが提供する最も主要な基礎はリソースです.リソース(Resources)はFlaskの抜き差し可能なビューの上に構築されており、あなたのリソース(resource)でメソッドを定義すれば、複数のHTTPメソッドに簡単にアクセスできます.
公式サイト(http://www.pythondoc.com/Flask-RESTful/quickstart.html)で説明した最も簡単なrestfulスタイルのapiは、以下の通りです.
from flask import Flask
from flask.ext import restful

app = Flask(__name__)
api = restful.Api(app)

class HelloWorld(restful.Resource):
    def get(self):
        return {'hello': 'world'}

api.add_resource(HelloWorld, '/')

if __name__ == '__main__':
    app.run(debug=True) 

2.1インストール

pip install flask_restful

2.2構成


create_app()取得Flask(name)オブジェクトで、次のように設定します.
from flask_restful import Api

api = Api()

api.init_app(app=app)

viewsで構成を導入するapiとResourceが必要です
#     restful  Api  
from flask_restful import Resource
from utils.functions import api

#    ,           GET,POST,PATCH,PUT,DELETE  
class CreateCourse(Resource):

def get(self, id):
    course = Course.query.get(id)
    return course.to_dict()

def post(self):
    courses = ['    ', '    ', '    ', '  ',
               'VHDL', 'ARM', '     ', '    ']
    course_list = []
    for course in courses:
        c = Course()
        c.c_name = course
        course_list.append(c)
    db.session.add_all(course_list)
    db.session.commit()

    courses = Course.query.all()
    return [course.to_dict() for course in courses]

def patch(self, id):
    c_name = request.form.get('c_name')
    course = Course.query.get(id)
    course.c_name = c_name
    db.session.commit()
    return {'code': 200, 'data': course.to_dict(), 'msg': '    '}

def delete(self, id):
    course = Course.query.get(id)
    db.session.delete(course)
    db.session.commit()
    return {'code': 200, 'msg': '    '}

#     url
api.add_resource(CreateCourse, '/api/course//', '/api/course/')

2.3エンドポイント(Endpoints)


1つのAPIでは、あなたのリソースは複数のURLsでアクセスできます.複数のURLsをApiオブジェクトのApiに渡すことができます.add_resource()メソッド.それぞれのURLであなたのResourceにアクセスできます
例:
api.add_resource(CreateCourse, '/api/course//', '/api/course/')

2.4リターンレスポンス


Flask-RESTfulは、ビューメソッドの複数のタイプの戻り値をサポートします.Flaskと同様に、元のFlask応答オブジェクトを含む応答に変換される任意の反復器を返すことができます.Flask-RESTfulでは、複数の戻り値を使用して応答コードと応答ヘッダを設定することもサポートされています.
例:
def get(self, id):
    course = Course.query.get(id)
    return course.to_dict(), 200