python
  • html
  • download
  • cherrypy
  • 2013-07-03 1 views 0 likes 
    0

    У меня есть подпрограмма python, которую я вызываю с помощью кнопки HTML. Я не могу позвонить из этой кнопки с помощью AJAX. Он должен быть вызов через URL, что-то вродекак вызвать сервер, обслуживающий страницу с URL-адресом, который ссылается на функцию объекта python, такую ​​как «csvExport» и вызывая ее с помощью кнопки

    onClick="location.href='server/csvExport'"> 
    

    Но как я могу обратиться к серверу, который выдал работает HTML, так что сервер может быть одним из многих серверов, выдающих этот сайт? Вот код стороны Python, который является открытым методом основного объекта. Сервер работает на основе CherryPy.

    def csvExport(self, **kwargs): 
    
        sql = '''SELECT * FROM ... 
        "... 
        "... 
        xLine += f2+f3+f1+f6+f8+f4+"\n" 
    
        rtr = xLine 
        CSV_Filename = "ExportReport" 
    
        cherrypy.response.headers['content-type'] = 'text/csv' 
        cherrypy.response.headers['content-disposition'] = 'attachment; filename=%s.csv'% CSV_Filename 
    
        return rtr 
    
    csvExport.exposed = True 
    

    ТИА

    ДК

    ответ

    0

    Решение состоит в том, чтобы использовать window.location.host DOM косвенность, чтобы получить ссылку на сервер, и он должен предшествовать 'HTTP://' два будет производить URL, как HTTP://soandso.com:8050 с портом номер для идентификации работающего сайта. Этот сайт теперь может быть дополнен функцией объекта, например csvExport, чтобы получить окончательную и полную ссылку на вызов, который вы пытаетесь сделать. например 'HTTP://soandso.com:8050/csvExport', и этого достаточно для ссылки на любой сервер, на котором запущен этот сайт.

    Вот практический способ посадки этого события в кнопку с JQuery:

     dLoadCall = window.location.host+"/csvExport"; 
         dLoadCall2 = "window.open('http://"+dLoadCall+"')"; 
         $("#dload").attr("onClick",dLoadCall2); 
    

    Кнопка HTML может выглядеть следующим образом перед вставкой событий:

    <input id="dload" type="button" value="Export CSV"/> 
    

    И это, как это будет выглядеть следующим образом:

    <input id="dload" type="button" value="Export CSV" onclick="window.open('http://192.168.19.249:8140/csvExport')">` 
    

    Теперь вы можете нажать на кнопку и вызвать Python method csvExport: на сервере, обслуживающим этот сайт.

    DK

     Смежные вопросы

    • Нет связанных вопросов^_^