当我 post 使用 Pusher 并重新加载页面时,所有条目都消失了。怎么修? Python 烧瓶

When I post something with Pusher, and reload the page, all entries disappear. How to fix? Python Flask

这是我触发 Pusher 事件的地方。

@app.route('/post-question', methods=['POST'])
def add_question():
    data_received = json.loads(request.data)
    data = {
        'id':'post-{}'.format(uuid.uuid4().hex),
        'title':data_received['title'],
        'question':data_received['content'],
        'status': 'active',
        'event_name': 'created'
    }
    pusher.trigger("CHANNEL", 'question-created', data)
    return jsonify(data)

这是 Pusher 通道绑定:

    <script>
        
        function appendToList(data) {
            const html = `
                <div id="${data.id}">
                        <header>
                            <h1>${data.title}</h1>
                        </header>
                        <div>
                            <p>${data.question}</p>
                        </div>
                    </div> `
                    let list = document.querySelector('#post-list')
                    list.innerHTML += html
        }

        $(document).ready(() => {
            $(document).on('click', "#submit", function(event) {
                $.post({
                    url: '/post-question',
                    type: 'POST',
                    contentType: 'application/json;charset=UTF-8',
                    dataType: 'JSON',
                    data: JSON.stringify({'title': $("#question-title").val(), 'content': $("#question-content").val()}),
                    success : function(response) {
                        console.log(response);  
                    },
                    error : function(xhr) {
                        console.log(xhr);
                    }
                }).done(function(response) {
                    $("#question-form").reset()
                })
            })
        })

        Pusher.logToConsole = true;
        
        const pusher = new Pusher('*', {
          cluster: '*',
          encrypted: true 
        });

        const channel = pusher.subscribe('CHANNEL')

        channel.bind('question-created', data => {
            appendToList(data);
        })
    </script>

它正确地触发了事件,并实时正确地出现在另一个window中,但是由于某种原因,当我重新加载页面时,所有的post都消失了; post 也会在当前 window 上消失。

我认为我渲染 post 的方式可能有问题,但我不知道。有人知道如何解决这个问题吗?

提前致谢!

第一个评论是正确的。 Pusher 负责实时通信和新事件。要在每次页面(重新)加载时显示 old/existing 个帖子,您需要在您的应用中查询和呈现它们。您可以选择在服务器端或客户端执行该操作。