V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  passerby233  ›  全部回复第 2 页 / 共 2 页
回复总数  39
1  2  
2022-11-02 16:26:33 +08:00
回复了 jalena 创建的主题 Linux 大佬都爱用什么远程管理工具呢?
windterm
2022-10-17 10:21:10 +08:00
回复了 Bearv5 创建的主题 程序员 0 基础设计自学转码,挑战 30 天看完犀牛书。
2022-09-22 19:41:01 +08:00
回复了 James369 创建的主题 程序员 微软弄一个 wsl 可以理解,现在又弄出一个 wsa 意欲何为?
前段时间用了一阵儿,除了 wsl2 里访问 Windows 磁盘(/mnt/d ;/mnt/f) io 太慢。其他到都挺满意的,jetbrains 系列连接 wsl2 开发也很爽。
2022-09-19 17:33:24 +08:00
回复了 ryougifujino 创建的主题 JetBrains 等 JetBrains 全家桶到 10 月续费的,现在是不是变成小丑了
2022-09-19 15:31:41 +08:00
回复了 zxCoder 创建的主题 Python 请问这个代码怎么写能让他跑得更快
for line in rd:
line = line.strip('\n')
2022-09-14 14:23:13 +08:00
回复了 kerrspace 创建的主题 程序员 深度学习显卡选择(RTX A6000 和 RTX 3090)
听别人说美帝制裁芯片不针对游戏受众,只针对高性能计算的产品。
2022-08-18 17:41:46 +08:00
回复了 HashV2 创建的主题 Django 请教 drf 全局封装 response 的优雅实现
跟你的差不多
2022-08-18 17:39:39 +08:00
回复了 HashV2 创建的主题 Django 请教 drf 全局封装 response 的优雅实现
1.全局异常
```python
from rest_framework.exceptions import ValidationError
from rest_framework.views import exception_handler


def custom_exception_handler(exc, context):
"""
自定义异常,需要在 settings.py 文件中进行全局配置
1.在视图中的 APIView 中使用时,需要在验证数据的时候传入 raise_exception=True 说明需要使用自定义异常
2.ModelViewSet 中非自定义 action 已经使用了 raise_exception=True,所以无需配置
"""
response = exception_handler(exc, context)
if response is not None:
# 字段校验错误处理
if isinstance(exc, ValidationError):
if isinstance(response.data, dict):
# 取错误信息中的一组数据返回
error_data = list(dict(response.data).items())[0]
# 该组数据的 key ,对应模型中的某个字段
error_key = error_data[0]
# 该组数据的 value ,有可能是多个错误校验提示信息,这里只取第一条
error_value = error_data[1][0]
response.data['message'] = f"{error_key}: {error_value}"
for key in dict(response.data).keys():
# 删除多余错误信息
if key != 'message':
response.data.pop(key)
response.data['code'] = 40000
response.data['data'] = None
if isinstance(response.data, list):
response.data = {'code': 40000, 'message': response.data[0], 'data': None}
return response
if 'detail' in response.data:
response.data = {'code': 40000, 'message': response.data.get('detail'), 'data': None}
else:
# 未知错误
response.data = {'code': 40000, 'message': str(response.data), 'data': None}
return response
return response
```
2.自定义 response
```python
from rest_framework.response import Response
from rest_framework import serializers


class JsonResponse(Response):
"""
自定义接口响应数据格式类
1.在视图类中的 APIView 中使用该 JsonResponse 返回响应数据
2.ModelViewSet 、Mixin 下派生的 APIView 类、views.APIView 都需要自己重写并返回 JsonResponse 格式的数据
"""

def __init__(self, data=None, code=None, msg=None,
status=None,
template_name=None, headers=None,
exception=False, content_type=None):
super().__init__(None, status=status)

if isinstance(data, serializers.Serializer):
msg = (
'You passed a Serializer instance as data, but '
'probably meant to pass serialized `.data` or '
'`.error`. representation.'
)
raise AssertionError(msg)
self.data = {'code': code, 'message': msg, 'data': data}
self.template_name = template_name
self.exception = exception
self.content_type = content_type

if headers:
for name, value in headers.items():
self[name] = value
```
ModelViewSet 子类中重写 action 返回值
```python
from utils.drf_utils.custom_json_response import JsonResponse
def create(self, request, *args, **kwargs):
"""
create task
"""
res = super().create(request, *args, **kwargs)
return JsonResponse(data=res.data, msg='success', code=20000, status=status.HTTP_201_CREATED,
headers=res.headers)
```
2022-08-18 17:31:08 +08:00
回复了 HashV2 创建的主题 Django 请教 drf 全局封装 response 的优雅实现
```python
print('test md.')
```
2022-06-23 11:22:16 +08:00
回复了 zinwalin 创建的主题 Android 安卓 MQTT 客户端如何保证 Service 一直运行在后台?
2022-06-23 10:03:28 +08:00
回复了 zinwalin 创建的主题 Android 安卓 MQTT 客户端如何保证 Service 一直运行在后台?
@zinwalin 是的,就是基于 eclipse 版本的 mqtt 库改的,改成 kotlin 版本的了,提供的功能都一致的。
2022-06-23 02:41:24 +08:00
回复了 zinwalin 创建的主题 Android 安卓 MQTT 客户端如何保证 Service 一直运行在后台?
参考这个库 https://github.com/hannesa2/paho.mqtt.android 然后在客户端的权限管理里开启自启动,电池省电策略更改为无限制就行了。
2022-06-10 01:18:41 +08:00
回复了 KunMinX 创建的主题 Android Android 随想:学技术要学本质
还在用 findViewById 中......
功能已实现,结贴了。感谢大位大佬的鼎力帮助!
@ysc3839 卧槽,我就是想搞这种,多谢大佬,我去瞅瞅,感谢~
Android 的权限现在控制的越来越严格了
我也不是很懂,我 giao ,Android 萌新。
@b1iy 不是,这个执行了会提示没有权限。想问怎么用 root 用户或者 adb shell 用户的权限去执行 Linux 命令。现在用的系统给 APP 分配的用户的权限,执行个`ls -lrth`都提示权限拒绝,谢谢哈。
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1142 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 75ms · UTC 18:34 · PVG 02:34 · LAX 11:34 · JFK 14:34
Developed with CodeLauncher
♥ Do have faith in what you're doing.