【问题标题】:Ajax python how to post dataAjax python如何发布数据
【发布时间】:2012-11-07 03:41:09
【问题描述】:

对不起,伙计们,也许以前有人问过这个问题。但是我google了几天,仍然无法解决问题。我正在使用带有 Python 的 Google App Engine 开发一个聊天系统。我希望用户输入她/他的消息并单击“提交”按钮。该操作将触发 Ajax 发布函数“addMsg()”将消息发布到 Chat 类(URL:“/chat”),这会将消息添加到数据存储区。还有另一个 Ajax 函数“updateMsg()”会定期更新消息列表。

该代码可以正常更新消息,但是我无法正确发布消息。有谁能够帮助我?谢谢。这是我的代码:

聊天.html:

    <p>
    <form method="" action="">
    <input type="text" name="message" size="60" /><br />
    <input type="button" value="Submit" onclick="addMsg('message')" />
    </form>
    </p>
    <div id="chatcontent"> </div>
    <script>
    function addMsg(message) {
        $.ajax({
            type: "POST",
            url: "/chat",
            data: {'message': message},
            cache: false
        });
    }
    </script>

    <script>
    $(document).ready(function() {
        function updateMsg() {
            $.ajax({
               url: "/message",
               cache: false,
               success: function(returndata){
                    $("#chatcontent").html(returndata);
               }
            });
            setTimeout(updateMsg, 4000);
        }
        updateMsg();
    });
    </script>

message.html:

    {% for chat in chatlist %}
    <p>
      {{ chat.text }} ({{ chat.user.account }}) {{chat.created|date:"D d M Y" }}
    </p>
    {% endfor %}

聊天.py:

    # Called by URL "/chat"
    class Chat(webapp2.RequestHandler):
        def post(self):
            message = self.request.get('message')
            newchat = ChatMessage(user=self.session['userkey'], text=message, created=datetime.datetime.now())
    newchat.put()

    # Called by URL "/message"
    class Message(webapp2.RequestHandler):
        def get(self):
            que = db.Query(ChatMessage).order('-created')
            chatlist = que.fetch(limit=100)
            render(self, 'message.html', {'chatlist': chatlist})
            # Note: render() is a function to be imported, which is just a normal template rendering function. It works fine and is omitted here.

【问题讨论】:

    标签: python ajax google-app-engine


    【解决方案1】:

    聊天.html

    <p>
    <input type="text" name="message" size="60" /><br />
    <input type="button" value="Submit" onclick="addMsg()" />
    </p>
    <div id="chatcontent"> </div>
    <script>
    function addMsg() {
        var message = $('input[name=message]').val();
        $.ajax({
            type: "POST",
            url: "/chat",
            data: {'message': message},
            cache: false
        });
    }
    </script>
    

    【讨论】:

      猜你喜欢
      • 2020-09-23
      • 2014-09-18
      • 2020-02-24
      • 2014-02-18
      • 2016-07-22
      • 2013-09-29
      • 2018-06-16
      • 2021-08-28
      • 1970-01-01
      相关资源
      最近更新 更多