как торнадо можно использовать для отображения ошибки на веб-интерфейсе - PullRequest
0 голосов
/ 06 декабря 2018

Вот мой файл python для контактной формы сайта.основной файл получает данные и отправляет их в базу данных.

 #main.py
    class next(tornado.web.RequestHandler):
    def get(self):
        self.render("contact.html")
    async def post(self):
        form = contact(self.request.arguments)
        name_ = form.data["name"]
        phone_ = form.data["phone"]
        email_ = form.data["email"]
        message_ = form.data["message"]
        image_ = form.data["pic"]
        print(name_, phone_, email_, message_, image_)

        try:

            dbsend = TestModel.create(name=name_, phone=phone_, email=email_,message=message_,image=image_)
            dbsend.save()
            print('done')
            self.render("contact.html")
        except:
            print('not done')

это файл, в котором, я думаю, весь код проверки принадлежит

validation.py

from wtforms import *
from wtforms_tornado import Form
class contact(Form):
    name= StringField('name',[validators.required()])
    phone = StringField('phone', [validators.Length(min=4, message="too Short")])
    email = StringField('email', [validators.Length(min=4, message="too Short")])
    message = StringField('message', [validators.Length(min=4, message="too Short")])
    pic = StringField('pic', [validators.Length(min=4, message="too Short")])

Это HTML-страница, содержащая форму.

contact.html

 <div class="row">
    <div class="col-lg-8 mb-4">
      <h3>Send us a Message</h3>
      <form name="sent" action="/contact" method="post" id="cForm" >
        <div class="control-group form-group">
          <div class="controls">
            <label>Full Name:</label>
            <input type="text"  name="name" >
            <p class="help-block"></p>
          </div>
        </div>
        <div class="control-group form-group">
          <div class="controls">
            <label>Phone Number:</label>
            <input  name="phone" >
          </div>
        </div>

        <div class=" ">
          <div class="">
            <label>Email Address:</label>
            <input   name="email">
          </div>
        </div>
        <div class="control-group form-group">
          <div class="controls">
            <label>Message:</label>
            <textarea rows="10" cols="100"  name="message" ></textarea>
          </div>
        </div>
        <div class="control-group form-group">
          <div class="controls">
            <label>Image:</label>
            <input type="file" name="pic" accept="image/*">
          </div>
        </div>
        <div id="success"></div>
        <!-- For success/fail messages -->
        <button type="submit" class="btn btn-primary" id="sendMessageButton">Send Message</button>
      </form>

    </div>

Как я могу поставить проверки на телефон электронной почты и т. Д. И показать ошибку на внешнем интерфейсе?

1 Ответ

0 голосов
/ 13 декабря 2018

Поскольку все это указано в документации WTForms, вы можете использовать validate() метод экземпляра формы для запуска валидаторов.Все ошибки будут в атрибуте form.errors. Вы можете вставлять сообщения об ошибках в HTML-страницу, используя шаблонизатор.

...