django.forms 包提供了 HTML 表单验证的功能,在没有使用 DRF 的情况下,无法合理地处理 API 传参的验证,其中传参验证中就缺少了参数默认值的设置。 层次结构 django.forms 包提供的 Field 类如下: __all__ = ( 'Field', 'CharField', 'IntegerField', 'DateField', 'TimeField', 'DateTimeField', 'DurationField', 'RegexField', 'EmailField', 'FileField', 'ImageField', 'URLField', 'BooleanField',...

原文:Error handling and Go

介绍

如果你写过 Go 的代码,就一定遇到过 Go 的内置类型 error。一个 error 类型的值可用于指明程序的某种不正常的状态,比如,当打开文件失败时,os.Open 函数会返回一个非 nil 的 error 值。

PAT 甲级 1003 。 # -*- coding:utf-8 -*- if __name__ == '__main__': # n 树中节点个数 # m 非叶子节点个数 n, m = list(map(int, input().strip().split(' '))) # 二维数组 # 元素的下标表示节点的 ID # 第 1 个元素不使用 tree = [[] for _ in range(n+1)] while m != 0: tokens = list(map(int, input().split(' '))) _id = tokens[0] children = tokens[2:] tree[_id] =...

PAT 甲级 1003 。 # -*- coding:utf-8 -*- import sys MAX_INT = sys.maxsize if __name__ == '__main__': # m 城市个数 # n 路径条数 # start 起始城市下标 # end 结束城市下标 m, n, start, end = map(int, input().strip().split(' ')) # nums_of_teams 各城市救援队的数量 nums_of_teams = list(map(int, input().strip().split(' '))) assert m == len(nums_of_teams) # 城市间...

SQL 转义问题

SQL 转义问题是指执行的 SQL 语句中包含了某些特定的字符,如单引号 '、反斜杠 \ 等,导致 SQL 语句不能正常执行。所以,我们应该在拼接 SQL 语句的过程中对特别的传入参数进行转义。

环境信息:

  1. MySQL 8.0.28;
  2. Go 1.16.9 windows/amd64

当发送给数据库的语句过大时,会报如下错误:

panic: Error 1105: Parameter of prepared statement which is set through mysql_send_long_data() is longer than 'max_allowed_packet' bytes

从报错中可知,需要修改 max_allowed_packet 选项的值。

Go Map

Go 中 map 是键值对的关联容器(Associative Container),可以存储不同类型的键值对,其中键的类型需要满足可比较(==)特性。