Можно ли использовать язык web2py в файле javascript (.js)? - PullRequest
1 голос
/ 17 октября 2011

Я пытаюсь использовать AJAX с языком web2py, но у меня проблема Мой код:

Javascript

$(document).ready(function(){
    $(".className").click(function(){
      jQuery.ajax({
      type:'POST', 
      url:'getName',
      data:{
       itemName:'a'
      },
      timeout: 20000,
      success: function(msg) {
         alert(msg);
      },
      error: function(objAJAXRequest, strError){
         alert( "Error:" + strError );
      }
    });
});

default.py

def getName():
    itemName=request.vars.itemName
    return "Name: " + itemName

Дело в том, что я хочу использовать данные из базы данных, но можно ли использовать

{{for item in tableName:}}
var name={{=item.name}}

как это?

Я не уверен, как извлечь данные из БД в JavaScript. Вы можете мне немного помочь? Приветствия

1 Ответ

1 голос
/ 19 октября 2011

Короткий ответ: вы не можете напрямую извлечь данные из БД в javascript с помощью web2py.Вы должны запросить базу данных с помощью web2py, а затем использовать web2py для отправки данных запроса в javascript (или, точнее, поскольку вы используете ajax, используйте jquery / javascript, чтобы получить данные запроса из web2py).Убедитесь, что вам действительно нужно выполнить логику на стороне клиента (javascript), потому что проще всего было бы выполнить всю вашу логику на python в контроллере web2py.

Однако, если вам по какой-то причине необходимо выполнить логику для ваших данных на стороне клиента, то вы на правильном пути.Для вас проще всего получить нужные записи из базы данных в контроллере web2py, затем упаковать записи в виде объекта json в вашем контроллере web2py («import simplejson» или вы можете сделать это с помощью стандартной библиотеки с помощьюпоследней версией python), затем верните этот объект json, чтобы сделать его доступным для извлечения js с помощью запроса ajax, который вы включили выше.Только в этот момент вы должны пройти через объект json, используя javascript для получения необходимых данных.

При этом, если вы просто пытаетесь получить поле из одной записи из базы данных, самый простойвсе, что нужно сделать, - это просто правильно запросить базу данных, чтобы получить эту запись, и вернуть ее в контроллер web2py, чтобы получить ваш ajax-скрипт.

...