私はFlaskを使ってWebアプリケーションを開発しています。私はもともとは手動でHTMLフォームを作成していましたが、WTFormを使用するように切り替えました(これは教育プロジェクトなので、プロジェクトを構築する各ステップを示しています)。WTFormsでのHTML5フィールドの使用
EmailFieldなどのHTML5フォームフィールドを追加しようとすると、ちょっと混乱しました。 WTFormsのドキュメントとオンラインを検索したところ、HTML5 EmailFieldを使用してWTFormを作成する方法を見つけることができませんでした。
私はこのモジュールhttps://pypi.python.org/pypi/wtforms-html5をインストールしました。それは許可され、すべてが機能しました。しかし、特に積極的に開発されていないように見えます(https://github.com/brutus/wtforms-html5)、余分な依存関係を追加することに不満を抱いていました。
その後、WTFormsのgithubページが表示され、実際にはすべての新しいHTML5フィールドがサポートされていますが、これらのフィールドはデフォルトではインポートされません。 https://github.com/wtforms/wtforms/blob/master/wtforms/fields/html5.pyしたがって代わりつ
from WTForms import TextField
一つから推測なるよう
from WTForms import EmailField
を使用する代わりに
を次のようにIは、以前wtforms-HTML5モジュールを用いたfrom wtforms.fields.html5 import EmailField
を使用しなければなりません
from wtforms_html5 import EmailField
私はwtforms_html5
のすべての出現をwtforms.fields.html5
に変更しました。私のアプリケーションは期待どおりに動作しています。
すべての背景を読んでいただきありがとうございます。今の質問のために:
なぜ(EmailField、日付フィールドなど)がWTFormsのドキュメントに記載されたHTML5のフィールドのいずれかではありませんか?
は、なぜこれらのフィールドは、他の人
のように、デフォルトでWTFormsにインポートされているこれらのフィールドは安定している/使用するためのもの?
WTFormsからフィールドをインポートする場合のベストプラクティスはありますか?テキストフィールドの
、私は、次のいずれかを使用することができます。
from wtforms import TextField
from wtforms.fields import TextField
from wtforms.fields.simple import TextField
しかしEmailFieldのために、私は
from wtforms.fields.html5 import EmailField
を使用する必要があり、私は希望:
from wtforms.fields import TextField
from wtforms.fields import EmailField
を
しかし、これにはフィールドに行を追加する必要があります[__init__][1]
ファイルですが、これは教育プロジェクトであり、これは学習者を混乱させるだけなので、私はしたくありません。
私は、HTML5のフィールド
- インサイトを探しています。
本当に有益で詳細な返信をありがとう。ドキュメントはgithubにもありますか?簡単な記事を書いて、「フィールド」セクションにサブセクションを追加して、HTML5フィールドが利用可能であること、およびそれらにアクセスする方法について説明します。あなたと他のメンテナがリソースが足りない場合そう。私は現時点で多くの人が、おそらく私が取ったルートに従っていて、これらのフィールドを再追加するためにサードパーティのpipパッケージをインストール(または作成)していると思います。 – Sixhobbits