フォーム検証ライブラリが欲しい
1. フォーム検証から HTML 生成を分離します。
2.検証エラーは簡単にシリアル化できます。json オブジェクトとしてダンプされます
Python Web プロジェクトでどのフォーム検証ライブラリを選択しますか?
フォーム検証ライブラリが欲しい
1. フォーム検証から HTML 生成を分離します。
2.検証エラーは簡単にシリアル化できます。json オブジェクトとしてダンプされます
Python Web プロジェクトでどのフォーム検証ライブラリを選択しますか?
免責事項
一般的に言って、私は現在HTMLフォームライブラリについて少し警戒しています。メガフレームワークから何かを使用する場合は、常にメガフレームワーク全体を依存関係として取り込む必要があります。
多くのメガフレームワークの多くのサブコンポーネントは、フレームワークに依存しないと主張していますが、私たち自身をからかってはいけません。使用しない場合は、機能にさまざまな違いがあることを私が知っているフォームライブラリが少なくとも12個あります。選択だけでもかなり混乱する可能性があります。一般的に言って、Ian Bickingが何年も前に言っていて、今でも真実であるように、誰にでも合う1つのフォームライブラリの概念は非常にばかげていると思います。実際、本当に必要だと判断する前に、おそらくよく考え直す必要があると思います。ほとんどの場合、FormEncodeのようなフォーム検証ライブラリが必要です。それは本当にあなたがそれをどのように使いたいかによります。
私の場合、メガフレームワークを使用しないので、軽量で、ピックアップと構成が簡単で、HTML / JS/CSSの通常の使用法の邪魔にならないものを選択します。 。
免責事項を終了
ToscaWidgets、ToscaWidgets 2、Formish、Deform、WTForms 、FormEncodeを試しました。私はそれらのどれも完璧に近いところはないと言わなければなりません。これが私の経験です:
2012年の終わりの時点で、Python検証ライブラリをGoogleとPyPIですばやく検索すると、何百ものパッケージが返されます。活発に開発されているDjango拡張機能を除いて、注目に値するものが12個強あります。JSON-Schemaを使用してスキーマを定義し、 Pythonデータ構造を一般的に検証できるようにする傾向があるようです。これは、サーバーアプリケーション開発者が複数のチャネル(RESTful APIおよびHTMLフォーム)からユーザーデータを受け入れるようになったことを反映している可能性がありますが、1つの検証ライブラリのみを使用したいと考えています。
Python 3.3のリリースにより、Python 3.xをサポートするために既存のライブラリを移植するという大規模な動きが引き起こされる可能性があります(その裏側では、古いライブラリが停滞し、Python 2.xとのみ互換性があります)。 Python 3.xをすでにサポートしている、またはサポートするために積極的に機能しているものを選択してください。
最後に、フォーム検証ライブラリを選択する際のもう1つの大きな懸念事項は、有用なエラーメッセージを報告する機能です。これには、長期的にはエラーメッセージをローカライズする必要が常に含まれます。独自のエラーメッセージを簡単に提供できることで、ライブラリを他のWebアプリケーションアーキテクチャと統合することの複雑さがすぐにわかります。
有望な新進気鋭:
私はおそらくWTFormsを選ぶでしょう。
このトピックは少し古いものですが、まさにこの目的のために書いてきたライブラリを恥ずかしがらずに差し込むと思いました。これは HTML フォーム専用ではありませんが、少なくとも部分的には HTML フォームを念頭に置いて作成されています。
名前を付けたときはあまり創造的ではなかったので、「Validator」は今のところそうする必要があります。どうぞ: https://github.com/wilhelm-murdoch/Validator
それは、使用するフレームワークの種類によって異なります。
あなたのタスクには、使いやすく、まだ「強力」なweb2py-Frameworkを使用することをお勧めします。デフォルトでフォーム検証があり( web2py-bookは無料です)、まさにあなたが望むことを行います: 検証から html 生成を分離し、これを自動的に行いますが、必要に応じてカスタマイズすることもできます。
例:
def display_form():
form=FORM('Your name:',
INPUT(_name='name', requires=IS_NOT_EMPTY()),
INPUT(_type='submit'))
if form.accepts(request.vars, session):
response.flash = 'form accepted'
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill the form'
return dict(form=form)
エラーをシリアル化することも可能ですが、これらの質問についてはweb2py-groupで質問するのが最善です。彼らはとても親切で、あなたをとても速く助けてくれます。
それが役に立てば幸い!よろしくお願いします..
使用する基礎となるフレームワークによって異なります。
django の場合、組み込みのフォーム フレームワークが最適です。
一方、kay は zine のフォーム システムの拡張バージョンを使用しています。
そして、tipfy は WTForms を使用します。
これまでのところ、django の組み込みシステムが最高です。
ボンネットの下で使用するフレームワークは何ですか?