Flaskフレームワーク-10 DebugtoolbarとRestful
6346 ワード
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