#書くこと
Pythonのオープンソースライブラリとして利用可能な、Cerberusを用いたバリデーション機能の実装の方法。
公式ドキュメント:https://docs.python-cerberus.org/en/stable/index.html
github: https://github.com/pyeve/cerberus
##環境
Python 3.6.5
##導入
まずは、導入を行っていきます。
###インストール
Cerberus(ケルベロス)は、外部ライブラリに属します。
なのでまずは、pipコマンドでcerberusをインストールしていきます。
pip install cerberus
ちなみに、
####pipコマンドは
外部ライブラリをインストールするために主に用いられるコマンドです。
####外部ライブラリとは
先人たちの知恵が詰まったコードの宝庫である
The Python Package Index (PyPI)
のことです。
###import
次に、インストールしたライブラリは、ソースコード内でimport(輸入)
してあげる必要があります。
本題に入る前に礼を示します。例えば、**元々組み込まれているライブラリの中から、random
**を輸入する時はこのように記述します。
#randomライブラリをimport
import random
#randomライブラリの"randint"メソッドを利用
random_number = random.randint(0,2)
####これが外部ライブラリになっても、基本は同じです。
今回のCerberusからは、Validatorクラス
をインポートしたいと思います。クラスのインポートには、from ライブラリ名 import クラス名
と記述します。
#インストールしたcerberusライブラリから、Validatorクラスをimport
from cerberus import Validator
これで、導入は終了です。
##実際の利用
ここまでで、Cerberusの導入が終了しました。
ここからは一番基本的な書き方と、実際に利用した例を述べていきます。
###基本の書き方
from cerberus import Validator
#例として、"name"は文字列でなければならないというバリデーションを作成します。
schema = {'name': {'type': 'string'}}
#importしたValidatorクラスのインスタンスvを生成し、バリデーションの情報を詰め込みます。
v = Validator(schema)
#試しに"name": "john doe"でTrueになるか確かめてみます。
document = {'name': 'john doe'}
#この記法で、documentがバリデーションの条件を満たしているかの判断をTrue or Falseで返します。
v.validate(document)
#→ True
pythonではdictと呼ばれるkey: value
の形でバリデーションを作成することができます。
文字列だけでなく、空白や真偽値を確かめることもできます。
詳しくは、以下の記事をご覧ください。
###名前を必ず入力させる仕組みを作成
名前を入力させる際に、空欄を許可しないバリデーションを作成しました。
from cerberus import Validator
#バリデーションを作成
name_rule = {
"name": {
"empty": False
}
}
#Validatorクラスより、name_ruleの情報が入ったインスタンスを生成
v = Validator(name_rule)
#名前を入力
your_name = input()
#your_nameが空である限り、処理を続ける。
while v.validate({"name": your_name}) == False:
print("名前を入力してください")
your_name = input()
print(your_name + "さん、ようこそ!")
このようにして、バリデーションの機能を利用して、必ず名前を入力させる仕組みを作成することができました。
#最後に
最後まで読んでいただき、ありがとうございます。
ソースコード、記事の書き方について「もっとこうしたほうがいいよ!」というご意見、「そこどうなっているの?」というご質問など、お待ちしております。
##参考文献