はじめに
faunaDB の python api の使い方が pydoc みたいなドキュメントを読んでいるだけではイマイチよくわからず、これを使ってるアプリの実例を github で探して(2個しかみつからず)そのうちのAnna Spyszさんの Serverless REST API を読んでて、「あ、こんな使い方ができるんだ、オサレだな」と思ったお話です
変数 client はどこで初期化してる?
create.py とか見てると faunaDB の client クラスを普通につかってるんだけど、アレはクレデンシャルとかで初期化しておかないと使えない筈、一体どこで初期化してるんだろう?
from todos import client, TODOS
from faunadb import query
def create(event, context):
# write the todo to the database
created = client.query(query.create(TODOS, {'data': data}))
# create a response
response = {
"statusCode": 200,
"body": json.dumps(make_result(created))
}
return response
todos の client をインストールしてるけど、todos に client.py なんかないし...
__init__.py
todos の __init__.py をみると
client = FaunaClient(secret=os.environ['FAUNADB_SECRET'])
TODOS = Ref('classes/todos')
ALL_TODOS = query.index('all_todos')
正解
なるほど、モジュールがインポートされたときに最初に呼ばれる __init.py で client を初期化しておいて、以下のモジュールではそれを使ってるんですね
\init__.py ってこんなふうにモジュールの共通変数の初期化に使うとオサレですね
Leave a Reply