Vue+Django开发过程问题整合
Vue+Django开发过程问题整合
vue同步与异步
vue的方法是顺序调用的,方法体内也是顺序执行的,但是无法保证先调用的方法先执行结束,即方法内是同步的,但是方法间是异步的
解决方法:
使用async和await修饰符,使方法间同步
async用于修饰函数,表示该函数异步,该函数执行不会阻塞后面代码的执行,await只能放在async修饰的函数内,表示需要等待await修饰的函数执行结束后才继续执行后面的代码
1 |
|
vue丢失后端数据的精度
后端的数据为64位长整数,前端javascript数字为64位,但整数最多为15位,因此后端的数据超过前端能表示的最大整数时,前端的数据将溢出
javascript数字表示见:JavaScript Number 对象 | 菜鸟教程
解决方法:
后端将长整数转换为字符串传给前端,接收前端返回的数据字符串后转换为长整数
该问题出现在数据库id上,后端需根据前端返回的id查询数据库,理论上来说,后端可以不用将该字符串转换为长整数,因为在这种情况下,mysql会将字符串转换为匹配对应字段的数据类型,但是只使用字符串的前导数字,即在第一个非数字字符及其之后的所有字符会被丢弃
mysql查询字符串转换为数字见:在MySQL中使用字符串查询Int字段的奇怪行为 - 问答 - 腾讯云开发者社区-腾讯云 (tencent.com)
django的json编码
django视图层函数返回数据时需要先将其转成json,json默认的编码器无法转换datetime对象
解决方法:
构造json编码器以转换datetime对象
1 |
|
django外键与外键_id
django当表含有外键时,该表对象的字段除了有外键之外,还有外键_id
该外键字段返回的是对应主键所在表的一条数据,是一个表对象,而外键_id字段返回的是对应的值
1 |
|
1 |
|
django与单例模式
django视图层需要一些全局的数据,供函数读取
解决方法:
通过单例模式构造一个存储全局数据的类(也可以使用数据库存储,该方法的优点是节省空间,适用于少量数据)
1 |
|