あなたが本当にあなたのものによって作られた


NPMライブラリを見た後joi , 私はそれが何をすることができ、どのようにJavaScriptのフォームの検証を容易にすることに驚いた.
同様のライブラリがフレームワークに依存しないPythonには存在しないことに失望しました.

ドントトラストへようこそ
DonttrustはPythonのフォーム検証ライブラリですjoi . これはjoiに似ていますが、機能のビットが不足していません.その機能を見る前に、インストールしなければなりません.
pip install donttrust

スキーマ
スキーマは、フォーム内のフィールドを定義するものです.現在スキーマの6種類があります.
  • 文字列
  • 含むint , float and complex )
  • 電子メール
  • 日付
  • ブーリアン
  • 任意のタイプ
  • スキーマを初期化する
    from donttrust import Schema
    
    username_field = Schema("username")
    
    The "username" パラメータSchema がオプションであるが、エラーメッセージがそれでフォーマットされるので、それは推薦されます.
    特定の型のスキーマを作成するには
    username_field = Schema("username").string()
    # or .number(), .boolean(), .email(), etc
    

    スキーマの検証
    スキーマを検証するには2つの方法があります.
    # With an exception
    from donttrust import Schema
    from donttrust.exceptions import DontTrustBaseException
    
    username = Schema().required().string()
    
    try:
        print(username.validate(1234))
    except DontTrustBaseException as e:
        # Exception thrown
        print(e.message)
    
    # By returning false instead of an exception
    from donttrust import Schema
    
    username = Schema().required().string()
    print(username.validate_without_exception(1234))  # False
    print(username.validate_without_exception("test"))  # test
    

    Donttrustクラス
    The DontTrust クラスを使用すると、1つ以上のスキーマを一緒に結合できます.
    from donttrust import DontTrust, Schema, ValidationError
    
    try:
        trust = DontTrust(username=Schema().string().required().alphanum().min(4).max(32).strip().to_lower()
                          password=Schema().string().required().min(8))
    
        print(trust.validate(username="UseRNAME    ", password="pas5word1"))  # {"username": "username", "password": "pas5word1"}
        print(trust.validate({"username": "1NV@LID"}))  # Exception
    except ValidationError as e:
        print(e.message)
    
    そして、それはこのPythonライブラリ用です!詳細についてはDocs , API Reference またはGithub repository *そして、あなたがそこにいる間、星を落としてください❤️)
    このプロジェクトの提案がある場合は、Githubの問題を作成するか、下にコメントしてください.それを実行するために最善を尽くします🥳