NHibernate: Значение возвращаемого значения перехватчиков

Шаг 1 : Проверьте эту ссылку, которая объясняет, как использовать Jquery и Ajax с FLASK

Ключевой концепцией здесь является AJAX ( асинхронный JavaScript и XML ). Короче говоря, это архитектура, которая позволяет отправлять запросы на сервер в фоновом режиме (так называемые асинхронные запросы), а затем изменяет содержимое страницы, отображаемой в настоящее время веб-браузером, в соответствии с результатом, полученным с сервера, избегая а также сервер не передает всю страницу снова.

Шаг 2 : решение вашей проблемы

  • Сначала мы напишем маршруты :

    from flask import Flask, render_template, request,
    app = Flask(__name__)
    
    user_input = None
    
    def get_table(user_input):
        ...
        return dict    //returns list of dictionaries, for example... 
                       //dict = [{'name':'Joe','age':'25'},
                      //        {'name':'Mike','age':'20'}, 
                      //        {'name':'Chris','age':'29'}] 
    
    @app.route('/')
    def home():
        return render_template('home.html')
    
    @app.route('/_ajax_user_input')
    def ajax_user_input():
         global user_input
         user_input = request.args.get('user_input', 0, type=int)
         return "ok"
    
    @app.route("/table")
    def table():
        x = user_input
        dict_table = get_table(x)     //return list of dictionaries
        return render_template('table.html', dict_table=dict_table)
    
  • [ 1112]

    После атаки на шаблоны :

    • home.html :

      
      
      
      
      
    • ]

      table.html :

      
          {% if dict_table %}
              
                  {% for key in dict_table[0] %}
                      
                  {% endfor %}
              
          {% endif %}
      
          {% for dict in dict_table %}
              
                  {% for value in dict.values() %}
                      
                  {% endfor %}
              
          {% endfor %}
      
      {{ key }}
      {{ value }}

В основном вот что происходит:

  • Когда я нажимаю на свою кнопку, я вызываю скрипт Javascript:

     $('.test').bind('click', function() {
    
  • Это отправляет запрос ajax в FLASK, который состоит в выполнении ajax_user_input () Функция :

     $.getJSON($SCRIPT_ROOT + '/_ajax_user_input',
    
  • В эту функцию я отправляю данные (значение, выбранное пользователем в теге выбора), и эти данные сохраняются в переменной user_input :

     user_input: $('#input').val(),
    
  • На стороне Flask я получаю данные и сохраняю их в глобальной переменной, которую я тоже назвал user_input : [ 1132]

     global user_input
     user_input = request.args.get('user_input', 0, type=int)
    
  • Затем в моем скрипте я вызываю метод javascript, который позволяет мне откройте URL в новой вкладке ( подробнее здесь ):

     window.open('http://127.0.0.1:5000/table', '_blank');
    
  • Маршрут 'таблица' хранит в переменной x данные, ранее сохраненные в моя глобальная переменная ( user_input ), затем она вызывает функцию get_table () (передавая ему переменную x в параметре), которая возвращает список словарей и, наконец, возвращает страница table.html со списком словарей в параметре:

     x = user_input
     dict_table = get_table(x)
     return render_template('table.html', dict_table=dict_table)
    

Я надеюсь, что это поможет вам, хотя я убежден, что есть много другие способы сделать это, возможно, более эффективные.

7
задан anonymous 12 May 2009 в 20:30
поделиться

2 ответа

Я считаю, что возвращаемое значение должно указывать, был ли изменен параметр состояния в методе перехватчика. Вы правы - на данный момент сложно использовать Google - сайт NHibernate недавно переехал, и Google, похоже, не находит столько полезной информации, сколько раньше.

5
ответ дан 7 December 2019 в 12:24
поделиться

Хьюи,

Прочтите этот пост, я не программист .net, но этот пост очень полезен:

http://knol.google.com/k/ fabio-maulo / nhibernate-chapter-11 / 1nr4enxv3dpeq / 14 #

Глава 11. Перехватчики и события Это часто бывает полезным для приложения реагировать на определенные события, которые происходят внутри NHibernate. Это позволяет реализация отдельных видов общая функциональность и расширение функциональности NHibernate.

11.1. Перехватчики Интерфейс IInterceptor обеспечивает обратные вызовы от сеанс в приложение, позволяющий приложение для проверки и / или манипулировать свойствами постоянного объект перед его сохранением, обновлением, удалено или загружено. Одно возможное использование для этого отслеживать аудит Информация. Например, следующий за II перехватчиком автоматически устанавливает createTimestamp, когда IAuditable создается и обновляет lastUpdateTimestamp, когда IAuditable обновлен.

Надеюсь, это просветит вас немного больше.

0
ответ дан 7 December 2019 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: