title: Using HTML5 fields with WTForms
body: <p>I am using Flask to develop a web application. I was originally doing HTML forms manually, and then switched over to using WTForms (this is an educational project, so I am showing each step of building the project).</p>
  
  <p>I got a bit confused when trying to add HTML5 form fields, such as EmailField. I searched the WTForms documentation, and online, and I couldn't find out how to create a WTForm using an HTML5 EmailField.</p>
  
  <p>I then installed this module <a href="https://pypi.python.org/pypi/wtforms-html5" rel="noreferrer">https://pypi.python.org/pypi/wtforms-html5</a> which allowed for it, and everything worked. But I was unhappy about adding an extra dependency, especially as it doesn't seem to be actively developed (<a href="https://github.com/brutus/wtforms-html5" rel="noreferrer">https://github.com/brutus/wtforms-html5</a>).</p>
  
  <p>I then ended up on the WTForms github page, and found that actually there is support for all the new HTML5 fields, but that these fields aren't imported by default. <a href="https://github.com/wtforms/wtforms/blob/master/wtforms/fields/html5.py" rel="noreferrer">https://github.com/wtforms/wtforms/blob/master/wtforms/fields/html5.py</a> Therefore instead of using </p>
  
  <pre><code>from WTForms import EmailField
  </code></pre>
  
  <p>As one would infer from </p>
  
  <pre><code>from WTForms import TextField
  </code></pre>
  
  <p>One instead has to use</p>
  
  <pre><code>from wtforms.fields.html5 import EmailField
  </code></pre>
  
  <p>I was previously using the wtforms-html5 module as follows</p>
  
  <pre><code>from wtforms_html5 import EmailField
  </code></pre>
  
  <p>I therefore changed all occurrences of <code>wtforms_html5</code> to <code>wtforms.fields.html5</code> and my application is working exactly as expected.</p>
  
  <p>Ok, thanks for reading all the background. Now for the questions:</p>
  
  <ul>
  <li><p>Why aren't any of the html5 fields (EmailField, DateField, etc) mentioned in the WTForms documentation? </p></li>
  <li><p>Why aren't these fields imported into WTForms by default like the others</p></li>
  <li><p>Are these fields stable/ intended for use?</p></li>
  <li><p>What's best practice for importing fields from WTForms?</p></li>
  </ul>
  
  <p>For Text field, I can use any of the following:</p>
  
  <pre><code>from wtforms import TextField
  from wtforms.fields import TextField
  from wtforms.fields.simple import TextField
  </code></pre>
  
  <p>But for EmailField, I have to use</p>
  
  <pre><code>from wtforms.fields.html5 import EmailField
  </code></pre>
  
  <p>I would like:</p>
  
  <pre><code>from wtforms.fields import TextField
  from wtforms.fields import EmailField
  </code></pre>
  
  <p>But this would require adding a line to the fields <code>[__init__][1]</code> file, which I am unwilling to do as it is an educational project and this would just confuse the learners.</p>
  
  <p>I am looking for</p>
  
  <ul>
  <li>Insight as to why WTForms does not document or by default import the html5 fields</li>
  <li>Any reason to continue using the wtforms-html5 third-party module.</li>
  </ul>