CherryPy 將AJAX應(yīng)用于應(yīng)用程序

2024-01-01 21:26 更新

考慮一個(gè)應(yīng)用程序,它包含一個(gè)名為“media”的文件夾,其中包含index.html和Jquery插件,以及一個(gè)帶有AJAX實(shí)現(xiàn)的文件。 讓我們將文件名稱視為“ajax_app.py”

ajax_app.py

import cherrypy
import webbrowser
import os
import simplejson
import sys
MEDIA_DIR = os.path.join(os.path.abspath("."), u"media")
class AjaxApp(object):
   @cherrypy.expose
   def index(self):
      return open(os.path.join(MEDIA_DIR, u'index.html'))
   @cherrypy.expose
   def submit(self, name):
      cherrypy.response.headers['Content-Type'] = 'application/json'
      return simplejson.dumps(dict(title="Hello, %s" % name))
config = {'/media':
   {'tools.staticdir.on': True,
   'tools.staticdir.dir': MEDIA_DIR,}
}
def open_page():
webbrowser.open("http://127.0.0.1:8080/")
cherrypy.engine.subscribe('start', open_page)
cherrypy.tree.mount(AjaxApp(), '/', config=config)
cherrypy.engine.start()

“AjaxApp”類重定向到“index.html”的網(wǎng)頁(yè),該網(wǎng)頁(yè)包含在媒體文件夾中。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml" lang = "en" xml:lang = "en">
   <head>
      <title>AJAX with jQuery and cherrypy</title>
      <meta http-equiv = " Content-Type" content = " text/html; charset = utf-8" />
      <script type = " text/javascript" src = " /media/jquery-1.4.2.min.js"></script>
      <script type = " text/javascript">
         $(function() {
            // When the testform is submitted...
            $("#formtest").submit(function() {
               // post the form values via AJAX...
               $.post('/submit', {name: $("#name").val()}, function(data) {
                  // and set the title with the result
                  $("#title").html(data['title']) ;
               });
               return false ;
            });
         });
      </script>
   </head>
   <body>
      <h1 id = "title">What's your name?</h1>
      <form id = " formtest" action = " #" method = " post">
         <p>
            <label for = " name">Name:</label>
            <input type = " text" id = "name" /> <br />
            <input type = " submit" value = " Set" />
         </p>
      </form>
   </body>
</html>

AJAX的功能包含在

輸出 (Output)

上面的代碼將產(chǎn)生以下輸出 -

Ajax輸出

一旦用戶提交了值,就會(huì)實(shí)現(xiàn)AJAX功能,并將屏幕重定向到表單,如下所示 -

輸出屏幕


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)