工作总结:
工作原因,鸽了四天没有学习,不过这几天工作也颇有收获:
Mysql8.04不支持desc排序,而之前写好的sql语句在调用时会报错vue环境布置时,版本必须与文档中一致,不然环境汇报无数错误git操作,git rabase和 git fetch是两个很有用的操作,合并时优先检查django中request.data['key']与request.data.get('key')的区别——前者调用QueryDict.__getitem__(key)方法,如果key不存在则报错,后者调用QueryDict.get(key,default=None)方法,key不存在则返回None。ast.literal_eval()方法,对传入的字符串自动进行类型转换。
@django.utils.functional.cached_property,cached_property,缓存装饰器,方法上加了这个装饰器表示该方法只执行一次,第二次则用缓存数据
iteritems(),于python2中返回一个迭代器,有序字典
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
Paginator 分页器对象——期中的属性:object_list, per_page, orphans=0(缺省参数,表示还剩几条数据时可以合并到上一页), allow_empty_first_page=True(允许首页为空)
Day6 Golang:
Go语言没有专门的定义异常,是靠error的interface返回值来实现异常返回关于strconv包,提供了字符串与简单的数字类型之间转换的功能。可以将简单的字符串与数字类型互转——字符串转int:Atoi(),int转字符串:Itoa()
func GetFibonacci2(str string) {var (i interr errorlist []int)if i, err = strconv.Atoi(str); err != nil {fmt.Println("Error", err)return}if list, err = GetFibonacci(i); err != nil {fmt.Println("Error", err)return}fmt.Println(list)}
panic,用于不可恢复的错误。panic调用退出程序前,会执行defer。
panic 与 os.Exit 的区别:
os.Exit 在调用退出时,不会调用defer;os.Exit 在退出时,不会输出当前调用栈信息。
// 常见的错误恢复 defer func() { if err := recover(); err != nil { log.Error("recovered panic", err) } }()