SQLiteとPeeweeでパス区切りでAPI配信するメモ。
PeeweeはPythonで利用できるシンプルで小さなORMです。SQLiteやMySQLやPostgreSQLに接続して利用できます。
サンプルのSQLiteを準備しておきます。
Peeweeをインストール。
pip install peewee
script.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#モジュールインポート
from flask import Flask, jsonify, abort, make_response, request
from peewee import *
#SQLite読み込み
database = SqliteDatabase("db.sqlite")
#ベースModel作成
class BaseModel(Model):
class Meta:
database = database
#UserテーブルのModel作成
class User(BaseModel):
m_Key = TextField()
m_Name = TextField()
#flaskのインスタンス作成
app = Flask(__name__)
#日本語表示対応
app.config['JSON_AS_ASCII'] = False
#JSON取得処理
@app.route('/api/<string:m_Key>', methods=['GET'])
def get_m(m_Key):
#URLのKeyとDBのKeyを比較
try:
master = User.get(User.m_Key == m_Key)
except User.DoesNotExist:
abort(404)
#URLのKeyとDBのKeyが一致したJSON作成
result = {
"data":{
"m_Key":master.m_Key,
"m_Name":master.m_Name
},
"result":True
}
#JSONを出力
return make_response(jsonify(result))
#エラー処理
@app.errorhandler(404)
def not_found(error):
#エラーJSON作成
result = {
"error": "存在しません。",
"result":False
}
#エラーJSONを出力
return make_response(jsonify(result), 404)
#app実行
if __name__ == '__main__':
app.run()
対象ディレクトリでコマンド実行。
python script.py
「127.0.0.1:5000/api/C1」でアクセスするとJSON取得。
適当なアドレスを入れるとエラーJSON取得。