検索

ホームページ  >  に質問  >  本文

python - django的restful部分给客户端提供接口,我在代码里写中文,有问题吗?

def share_to_user_api(request, repo, to_user, permission):
    """Share repo to a user with given permission.
    """
    repo_id = repo.id
    from_user = request.user.username

    if from_user == to_user:
        msg = ('%s 共享失败,不能共享给本用户')% to_user

        return msg

    if not is_registered_user(to_user):
        msg = ('%s 共享失败,该用户未注册') % to_user

        return msg

    try:
        if seafile_api.share_repo(repo_id, from_user, to_user, permission) == 2:
            msg = ('%s 共享失败,已共享') % to_user

            return msg
        else:
            seafile_api.share_repo(repo_id, from_user, to_user, permission)
    except SearpcError as e:
            logger.error(e)
            msg = ('%s 共享失败,请稍后重试') % to_user

            return msg
    else:
        # send a signal when sharing repo successful
        share_repo_to_user_successful.send(sender=None,
                                           from_user=from_user,
                                           to_user=to_user, repo=repo)
        msg = ('%s 共享成功') % to_user

        return msg

因为返回给客户端的信息直接提示给用户,综合考虑,提示由服务器返回比较合适,我这样写中文有其他的可能的问题出现吗?

qt客户端适当的转换编码格式,就是中文了,我怕后期有什么不确定的因素,导致客户端原来的编码格式显示出来的是乱码。目前测试是没问题。

黄舟黄舟2809日前680

全員に返信(3)返信します

  • 大家讲道理

    大家讲道理2017-04-18 09:18:16

    これは良くありません。 dict を返す方が適切です。 {status: xxx, msg: xxx, data:xxx}、正常に設定 http status = 200 を呼び出します。そうでない場合は、状況に応じて 40x50x を返します。

    さらに、rest インターフェースに関しては、Django REST フレームワークを学習することをお勧めします。習得にはある程度のコストがかかりますが、一度習得すると非常に役立ちます。

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:18:16

    Python ソース コードに中国語を直接記述すると、Python はエンコーディングを ANSI エンコーディングに変換します。 簡体字中国語システムでは、ANSI コードは GB2312 です。 WebページがUTF8でエンコードされている場合、文字化けする可能性があります。 Unicode エンコードを使用することをお勧めします。

    リーリー

    返事
    0
  • 阿神

    阿神2017-04-18 09:18:16

    このように書くとクライアントは文字化けする可能性が高くなります。
    統計は unicode を使用します。
    コード内に中国語を記述する場合は python3 を使用しても問題ありません。 2.7+では、ファイルヘッダーは最も
    と書くのが良いです リーリー

    この方法では、ファイルを変更する必要はありません。

    返事
    0
  • キャンセル返事