python - ubuntu 服务器上的 Django 编码问题
问题描述
我正在开发 Django Rest Framework,我有一个简单的登录 view.py,并且在我的本地主机上一切正常。但是在 ubuntu 服务器上它会抛出一些奇怪的错误。
以下是视图类
class userDetail(generics.RetrieveUpdateDestroyAPIView):
def post(self, request, *args, **kwargs):
header = Header(request)
checkHeader = header.checkHeader()
if checkHeader['status'] == 0:
return Response(checkHeader, status=status.HTTP_401_UNAUTHORIZED)
# platform = request.META.get('HTTP_PLATFORM', 'Not Found')
data = request.data
serializer = loginSerializer(data = data)
if serializer.is_valid(raise_exception=True):
data = serializer.data
username = data['username']
password = data['pword']
authenticate = Authentication(username, password)
loginData = authenticate.check()
if loginData[0]['status'] == 1:
auth = skAuth_Token(loginData[0]['userID'])
auth_token = auth.encode()
if auth.saveToken(auth_token):
rowData = UserMaster.objects.get(pk=loginData[0]['userID'])
dataSerializer = loginDataSerializer(rowData)
response = {
'status': 1,
'message': 'Login Successfull',
'header': checkHeader,
'skAuth_Token': auth_token,
'data': dataSerializer.data
}
else:
response = {
'status': 0,
'message': 'Couldnot save skAuth_Token in dB',
'header': checkHeader,
}
elif loginData[0]['status'] == 2:
response = {
'status': 2,
'message': 'User is not Registered as a seller',
'header': checkHeader
}
else:
response = {
'status': 0,
'message': 'Login Failed',
'header': checkHeader
}
return JsonResponse(response)
return Response(serializer.error, status=status.HTTP_400_BAD_REQUEST)
这在我的本地主机(Windows)上运行良好。但在 ubuntu 服务器上出现以下错误。
这是主要错误 - “utf-8”编解码器无法解码位置 0 的字节 0x89:无效的起始字节。请帮我
解决方案
这是我在 settings.py 中使用 charset 和 use_unicode 选项解决的 django 编码错误(utf-8)
以下是我的 settings.py 数据库段的外观
DATABASES = {
'default': {
'ENGINE': 'mysql.connector.django',
'NAME': 'testDB',
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'charset': 'latin1',
'use_unicode': True,
},
}
}
推荐阅读
- html - 如何使用 HTML5 或任何免费工具制作照片猜谜游戏?
- php - 使用带有 codeigniter 的 PHP 显示带有 foreach 函数的固定表
- java - JTextPane 中的文本对齐方式,与 ms office 相同
- c# - List<> 和 IEnumerable<> 开放类型的关系
- javascript - 点击图片触发手机浏览器下载
- python - 检查列表或项目组合中有多少项目与条件匹配的 Pythonic 方法
- bash - Bash:“file < FILE > FILE.extension &”是什么意思?
- typescript - 如何确保数组的值是打字稿接口的键?
- authentication - 如何要求登录身份验证才能访问端口 8500 上的 Vault UI 控制台?
- typescript - 自定义组件未在 Ionic v4 + Angular 6 中显示