小程序初次接触,而django用的也并不是很熟,做出一个项目使用而已。碰到的两个问题都是属于小问题,但是没有用过就成了过不去的坎儿,两三天的时候耗在了这上面,做个记录,希望能帮到别人。
1,在django项目中使用redis
使用这个是因为看好键值存储的简单,而且还可以定时。但是使用的时候一直以为是象ini文件差不多的方式,后来才知道,这个东西是需要安装服务器的,安装完成后配置一下就可以使用了。而在项目的配置中,使用的是这个样子:
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://xx.x.x.x:6379',
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
},
},
}
以网络上查询时,有的说要在端口后加了一个数字,如/0,/1一类的,暂无时间深究,但是并不好用,去掉后就可以了。
2,使用APIVIEW返回的数据
在返回的时候,总会有报错,一会儿这样一会儿那样,后来总体感觉一种崩溃的不稳定的状态。到后来静下心来,不再使用小程序直接调试,下了一个postman来调试服务端,通过后再连接小程序。而后端的这个错误才是卡了我时间最长的一个:
Object of type Decimal is not JSON serializable
然后加了这么段代码
class DecimalEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, decimal.Decimal):
return float(o)
super(DecimalEncoder, self).default(o)
使用
return json.dumps(data, cls=DecimalEncoder, ensure_ascii=False)
问题解决。