概要
validators ライブラリは複雑な正規表現を使わずにいろいろなフォーマットのバリデーションが行える便利ライブラリです
今回は URL のバリデーションだけですが使って見ました
環境
- macOS 13.5.2
- Python 3.11.3
- validators 0.22.0
インストール
- pipenv install validators
サンプルコード
成功している場合は True で失敗している場合は False ではなく ValidationError のオブジェクトが返ってきます
まだまだ開発段階ですべての URL スキームに対応しているわけではないので注意してください
import validators
# OK
print(validators.url("https://kakakikikeke.com"))
print(validators.url("http://localhost.dev"))
print(validators.url("http://localhost", simple_host=True))
print(validators.url("http://localhost:8000", simple_host=True, may_have_port=True))
# Error
print(validators.url("localhost")) # schema がない
print(validators.url("localhost:8000", simple_host=True, may_have_port=True)) # schema がない
print(validators.url("http://localhost:8000")) # ポートが指定されている (my_have_port=True がない場合
print(validators.url("mqtt://localhost:1883", simple_host=True, may_have_port=True)) # mqtt スキームはサポートしていない https://github.com/python-validators/validators/blob/master/src/validators/url.py#L41
最後に
他にもいろいろなバリデーションに対応しています
メールフォーマットをチェックした IP アドレスフォーマットのチェック、ホスト名チェックなども行えます
正規表現を愚直に書くよりかはこちらに寄せるほうがコードとしては読みやすくなるかなと思います
そのうち uri というメソッドができるのでそっちでいろいろなスキームに対応できるかなと思います 参考
0 件のコメント:
コメントを投稿