Технологию AJAX можно использовать и в web приложениях написанных на языке Python.
При этом сам принцип работы не особо отличается от других языков. Отправка запроса с помощью JavaScript, затем получение и обработка данных на сервере с оправкой результатов назад клиенту. Однако есть и некоторые особенности обусловленные спецификой Python.
Возьмём для рассмотрения тот же пример, что использовали при работе с AJAX на PHP с использованием jQuery (ссылка в конце статьи). Только теперь реализуем всё на Python.
Сразу отметим, что клиентская часть при этом почти ни как не изменится. Единственное изменение – страница обработчик запроса, которая теперь буде называться getajax.py вместо getajax.php.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<!DOCTYPE HTML> <html> <head> <title>AJAX</title> <meta charset="utf-8" /> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('#form').submit(function(event){ $.post("getajax.py",{data:$("#in1").val()},onResponse); return false; }) function onResponse(data){ $("#in2").text(data); } }) </script> </head> <body> <form id="form" method="POST"> <input id="in1" type="text" /> <button id="btn">Test</button> </form> <p id="in2"></p> </body> </html> |
1 |
import cgi storage = cgi.FieldStorage() |
1 |
data = storage.getvalue('data') |
1 2 |
if data is not None: print(data) |
Разумеется, работая с Python под web нельзя забывать про вывод заголовков и указание кодировки.
Полностью страница обработки запроса (файл getajax.py) выглядит следующим образом.
1 2 3 4 5 6 7 8 9 |
# -*- coding: utf-8 -*- import cgi storage = cgi.FieldStorage() data = storage.getvalue('data') print('Status: 200 OK') print('Content-Type: text/plain') print('') if data is not None: print(data) |
Собственно, всё! Всего вышеприведённого уже достаточно для работы с AJAX в Python.
Ниже показан скриншот браузера с работающим web приложением.
Спасибо! Очень пригодилось!