Django学习笔记(三十五):接入玩家信息发送接口

接入玩家信息发送接口,渠道方通过访问我们提供的接口,将玩家部分数据传递给我们,我们通过get方式将参数进行获取,

再将获取的参数通过服务器的数据库进行查询然后返回给渠道方。


@Route(r'^log/serverlist$')
@notauth
def query_server(request):
    '''
    查询服务器列表
    '''
    try:
        server = Server.objects.all()
        server_list = []
        for item in server:
            server_list.append({"name":item.name,"id":item.id})
        return HttpResponse(json.dumps({"code":200,"msg":server_list}))
    except BaseException as e:
        return HttpResponse(json.dumps({"code":404,"msg":e}))


@Route(r'^log/user$')
@notauth
def query_user(request):
    '''
    查询用户是否合法
    '''
    userid = int(request.GET.get("userid"))
    serverid = int(request.GET.get("serverid"))
    user_dict = {}
    try:
        conn = getConn(serverid)
        cur = conn.cursor()
        sql = ' select link_key,player_name,player_id,channel_id,lpc.f3 from player_%d as p LEFT JOIN (select f3,log_user FROM log_player_coin where f1 =1 and log_user = %d and log_time = (select max(log_time) FROM log_player_coin where f1 =1 and log_user = %d)) as lpc on lpc.log_user = p.player_id where player_id = %d ;' % (serverid,userid,userid,userid)
        cur.execute(sql)
        query_list = cur.fetchone()
        print query_list
        if query_list:
            user_dict["link_key"] = query_list[0]
            user_dict["player_name"] = query_list[1]
            user_dict["player_id"] = query_list[2]
            user_dict["channel_id"] = query_list[3]
            user_dict["gold"] = query_list[4]
            user_dict["server_id"] = serverid
            return HttpResponse(json.dumps({"code":200,"msg":user_dict}))
        else:
            return HttpResponse(json.dumps({"code":404,"msg":"userid or serverid error"}))
    except BaseException as e:
        return HttpResponse(json.dumps({"code":404,"msg":e}))


@Route(r'^log/orderlist$')
@notauth
def query_orderlist(request):
    '''
    订单
    '''
    userid = int(request.GET.get("userid"))
    time = int(request.GET.get("time"))
    try:
        conn = getConn()
        cur = conn.cursor()
        sql = 'select open_id,player_name,pay_user,server_id,channel_id,pay_gold,post_time,channel_key,pay_amount from pay_action where  post_time > FROM_UNIXTIME(%d) and pay_user = %d;'%(time,userid)
        cur.execute(sql)
        quert_list = cur.fetchall()
        user_list = []
        if quert_list:
            for item in quert_list:
                user_list.append({"open_id":item[0],"player_name":item[1],"pay_user":item[2],"server_id":item[3],"channel_id":item[4],"pay_gold":item[5],"post_time":str(item[6]),"channel_key":item[7],"pay_amount":item[8]})
            return HttpResponse(json.dumps({"code":200,"msg":user_list}))
        else:
            return HttpResponse(json.dumps({"code":200,"msg":"该时间戳节点后无该玩家充值数据"}))
    except BaseException as e:
        return HttpResponse(json.dumps({"code":404,"msg":e}))


@Route(r'^log/playermsg$')
@notauth
def query_playermsg(request):
    '''
    查询玩家id
    '''
    serverid = int(request.GET.get("serverid"))
    playername = request.GET.get("playername")
    playername = playername.decode("utf-8")
    print(serverid,playername,type(playername))
    try:
        conn = getConn(serverid)
        print(1111111)
        cur = conn.cursor()
        print(1122221)
        sql = ''' select player_id from player_%d where player_name = "%s" ''' % (serverid, playername)
        print(sql)
        cur.execute(sql)
        print(33333333333)
        query_list = cur.fetchone()
        print query_list
        if query_list:
            return HttpResponse(json.dumps({"code": 200, "playerid": query_list[0]}))
        else:
            return HttpResponse(json.dumps({"code": 404, "errormsg": "username or serverid error"}))
    except BaseException as e:
        return HttpResponse(json.dumps({"code": 404, "errormsg": e}))



 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
学习Django时,使用PyCharm作为开发工具可以提高效率。PyCharm是一款功能强大的Python集成开发环境,它提供了丰富的功能和工具,可以帮助开发者更好地编写和调试Django应用程序。 在学习Django的过程中,可以使用PyCharm创建Django项目,并使用其内置的Django支持功能来简化开发过程。PyCharm可以自动识别Django项目的结构,并提供代码补全、语法检查、调试等功能,帮助开发者更快地编写和调试代码。 此外,PyCharm还提供了集成的版本控制系统,如Git,可以方便地管理和追踪代码的变化。它还支持自动化测试和部署,可以帮助开发者更好地进行项目管理和发布。 总之,使用PyCharm作为开发工具可以提高Django学习的效率和便利性。它的强大功能和友好的用户界面使得开发者可以更专注于代码的编写和项目的开发。\[1\] \[2\] \[3\] #### 引用[.reference_title] - *1* *3* [PyCharm平台下初学Django框架](https://blog.csdn.net/howard2005/article/details/93491364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [pycharm平台下的Django教程](https://blog.csdn.net/Sunshine_ZCC/article/details/73918408)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值