当前位置: 首页 > 知识库问答 >
问题:

如何将请求从一台django服务器发送到另一台服务器

越飞鸾
2023-03-14

我有姜戈问题。我想将来自浏览器或django服务器上的业务逻辑的数据发送到另一个django服务器或只是同一服务器但不同端口来处理请求。我该怎么办?我试着用套接字来实现,但似乎不起作用。

Following is my code:
accept the client's request:
def im(request):
    userp = None
    try:
        userp = UserProfile.objects.get(user = request.user)
    except:
        pass
    if not userp:
        return HttpResponse("error")
    print '111'
    if request.method == "GET":
        import json
        msg = json.loads(request.GET.get('msg'))
        try: 
            msg['from_id'] = userp.id
            if msg.get('type', '') == 'sync': #页面同步消息
                msg['to_id'] = userp.id
            push_msg(msg)
            return HttpResponse("success")
        except:
            return HttpResponse("error")
        #return HttpResponseRedirect("http://127.0.0.1:9000/on_message")
    return HttpResponse("error")

helper.py:push_msg:
def push_msg(msg):
    print '111'
    params = str(msg)
    headers = {"Content-type":"application/x-www-form-urlencoded", "Accept":"text/plain"}
    conn = httplib.HTTPConnection("http://127.0.0.1:9000/push_msg/")
    conn.request("POST", "/cgi-bin/query", params, headers)

url(r'^push_msg/$', 'chat.events.on_message')
events.py:on_message
def on_message(request):
    msg = request.POST.get('msg')
    msg = eval(msg)
    try:
        print 'handle messages'
        from_id = int(msg['from_id'])
        to_id = int(msg['to_id'])
        user_to = UserProfile.objects.get(id = msg['to_id'])
        django_socketio.broadcast_channel(msg, user_to.channel)
        if msg.get('type', '') == 'chat':
            ct = Chat.objects.send_msg(from_id=from_id,to_id=to_id,content=data['content'],type=1)
            ct.read = 1
            ct.save()
    except:
        pass 

共有1个答案

葛言
2023-03-14

使用python requests module来完成此操作,requests比httplib2具有更多的特性,而且使用http://docs.python-requests.org/非常容易

 类似资料:
  • 问题内容: 我需要将Jenkins 2.32版从服务器A移至Jenkins 2.72.1服务器B。两台服务器均具有ubuntu 16.04.3,由于内存问题,我无法安装任何插件,也无法在服务器A中使用该插件。有什么办法可以实现这一目标? 问题答案: 将目录中的所有文件复制到新服务器。 将新服务器指向新目录。 将Jenkins war文件(或servlet容器设置,如果有的话)复制到新机器上并启动它

  • 问题内容: 我目前有一个在云实例上运行的实时Redis服务器,我想将此Redis服务器迁移到新的云实例并将该实例用作我的新Redis服务器。如果是MySQL,我将从旧服务器中导出数据库并将其导入新服务器中。我应该如何使用redis? PS:我不想设置复制。我想将Redis服务器完全迁移到新实例。 问题答案: 通过运行或从命令行将数据库快照保存到dump.rdb中。这将在与Redis服务器相同的文件

  • 问题内容: 我必须将数据(json对象)发送到另一个Web服务器(java)。 这是我的node.js代码 这是行不通的。我怎样才能做到这一点? 问题答案: 您正在重复请求,并为发布请求重新分配变量。我已经更新了您的代码并与requestb.in一起对其进行了测试 请将请求主机和代码中的路径更新为所需的值。让我知道它是否仍然对您不起作用。

  • 将单个TeamCity构建配置从一个服务器移动到另一个服务器的最佳方法是什么? 我有一个测试基于的TeamCity的本地实例。然后当构建足够成熟时,我在我们的主TeamCity服务器上手动创建它(眼球复制)。

  • 问题内容: 恐怕我已经知道问题的答案了,但是我还是会问: 当有两个MySQL DB服务器时,我可以访问存储在另一个服务器上的数据吗? 换句话说:我能以某种方式做到这一点: 答案真的和“否”一样短吗? 问题答案: 您可以在MySQL中设置联合表来完成您要执行的操作。有一些限制。 http://dev.mysql.com/doc/refman/en/federated-storage-engine.h