2016-12-22 7 views
1

Это мой пример HTML файлМетоды на связывание сервера HTML Tornado и Python файл

<html> 
    <head> 
    <title> 
    </title> 
    </head> 
    <body> 
    <form action=""> 
    Value a:<br> 
    <input type="text" name="Va"> 
    <br> 
    Value b:<br> 
    <input type="text" name="Vb"> 
    <br><br> 
    <input type="submit"> 
    </form> 
    <textarea rows="4" cols="10"> 

    </textarea> 
    <p> 
    </p> 
    </body> 
    </html> 

И данный код Tornado сервера шаблона: (Я также нужна помощь в объяснении каждой секции следующего кода)

import tornado.ioloop 
    import tornado.web 
    import tornado.httpserver 
    import tornado.gen 
    import tornado.options 
    tornado.options.parse_command_line() 
    class APIHandler(tornado.web.RequestHandler): 
     @tornado.web.asynchronous 
     def get(self): 
      self.render('template.html') 
     @tornado.gen.engine 
     def post(self): 
      try: 
       num = int(self.get_argument('num')) 
      except: 
       num = 5 
      self.render('template.html') 
    app = tornado.web.Application([(r"/next_rec",APIHandler),])   
    if __name__ == "__main__": 
     server = tornado.httpserver.HTTPServer(app) 
     server.bind(48763) 
     server.start(5) 
     tornado.ioloop.IOLoop.current().start() 

и, наконец, мой питон код:

if __name__ == '__main__': 
     a = int(raw_input()) 
     b = int(raw_input()) 
    print a+b 

Я использую простой «а + Ь» функция, чтобы проверить эта особенность. Но моя проблема заключается в том, что я не могу найти способ связать их вместе. Поэтому моя конечная цель - нажать кнопку «Отправить» в HTML, передать два значения на сервер Tornado, использовать его в качестве входных данных в моем скрипте python и, наконец, показать вывод в текстовой области HTML или на другой странице , Я знаю, что в Интернете много информации, но я совершенно не знаком с Tornado (около 0 знаний), и большинство из них я не могу понять. Помощь по методам или ключевым словам для поиска очень ценится, большое вам спасибо. (пожалуйста, держите ответы как можно более простыми, это поможет, спасибо!)

ответ

0

Прежде всего, вы должны проверить официальное сообщение documentation. Это довольно просто и нацелено на новичков.

Также в этом коротком guide разделы с похожим кодом, как ваш, объясняются с простотой.

Теперь для вашего кода:

На шаблоне вам необходимо указать, что форма должна отправить пост запрос на представить, добавив <form method="post" id="sum_form">

Кроме того, необходимо, чтобы убедиться, что вы будете представлять данные добавлен в форму на мероприятии: $("#sum_form").submit();

В вашем методе post вам нужно прочитать пройденные номера из формы вашего клиента, добавить их, а затем отправить их обратно в шаблон в качестве параметра.

Например:

def post(self): 
    numA = int(self.get_argument('Va')) 
    numB = int(self.get_argument('VB')) 
    sumAB = numA + numB 
    self.render('template.html',sumAB=sumAB) 

В вас template.html вам нужно добавить поле, где будет отображаться переданную сумму в качестве переменной джинджа: {{sumAB}}