dayjournal memo

Total 975 articles!!

Flask #002 - SQLiteとPeeweeでパス区切りでAPI配信

Yasunori Kirimoto's avatar

画像


画像


画像



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取得。

画像



book

Q&A