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客户端适当的转换编码格式,就是中文了,我怕后期有什么不确定的因素,导致客户端原来的编码格式显示出来的是乱码。目前测试是没问题。
這樣不太好。返回一個dict比較合適。
{status: xxx, msg: xxx, data:xxx}
, 成功调用设置http status = 200
, 其它根据情况返回40x
,50x
。另外,涉及到
rest
接口,建議學習 Django rest framework。學習有一定成本,但是學好了非常好用。如果在Python原始碼中直接寫中文的話,Python會把編碼轉換成ANSI編碼。 而簡體中文系統下,ANSI編碼是GB2312。如果網頁是UTF8 編碼的話有可能會亂碼。建議使用unicode編碼。
這樣寫很有可能客戶端收到的是亂碼,
可以這樣改,統計使用unicode
使用python3 在代碼中寫中文沒問題,
使用python 2.7+ ,文件頭最好寫上
這樣文件就不用怎麼改了,