当你只是测试项目中某一个 py 文件内容, 不想去启动整个项目的时候,这时候就可以搭建一个测试环境
import os
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day06.settings")
import django # 加入这两行
django.setup()
# 在 if 的子代码快里面可以对django的单个文件进行测试, 模块导入也要在该方法下进行不能提到最上面
ps(补充小知识) :
- pycharm连接数据库都需要提前下载对应的驱动
- 自带的sqlite3对日期格式数据不敏感,如果后续业务需要使用日期辅助筛选器就不要使用sqlite3
常用字段 | 描述 | 与MySQL字段对应关系 |
---|---|---|
AutoField | 必须指定参数primary_key=True指定主键. 如果没有设置主键, 默认创建并以id名作为主键 | integer auto_increment |
IntegerField | 整型字段. 存储宽度4Bytes. 无符号: 0~2^32 有符号: -232/2~232-1 | int 或 integer |
BigIntegerField | 整型字段. 存储宽度8Bytes. 无符号: 0~2^64 有符号: -264/2~264-1 | bigint |
DeciamlField | 浮点字段. 必须指定参数max_digits设置总长度. decimal_places设置小数位长度 | numeric(%(max_digits)s, %(decimal_places)s) |
EmailField | 字符字段. Django Admin以及ModelForm中提供验证机制 | |
CharField | 字符字段. 必须指定参数max_length参数设置字符存储个数. Django中的CharField对应的MySQL数据库中的varchar类型,没有设置对应char类型的字段,但是Django允许我们自定义新的字段. | varchar(%(max_length)s) |
DateField | 日期字段. 格式: 年-月-日. 一般指定参数auto_now=Ture更新记录的时间, 或者auto_now_add=True插入记录的时间 | date |
DateTimeField | 日期字段. 格式: 年-月-日 时:分:秒 一般指定参数auto_now=Ture更新记录的时间, 或者auto_now_add=True插入记录的时间 | datetime |
AutoField(primary_key=True) # int自增列, 必须填入参数:primary_key=True
BigAutoField(primary_key=True) # bigint自增列, 必须填入参数:primary_key=True
# 对应mysql字段类型
AutoField----->int auto_increment
BigAutoField----->bigint auto_increment
IntegerField() # 整数列(有符号) -2147483648 ~ 2147483647
BigIntegerField() # 长整型(有符号) -9223372036854775808 ~ 9223372036854775807
# 对应mysql字段类型
IntegerField----->int
BigIntegerField----->bigint
PositiveSmallIntegerField() # 正小整数 0 ~ 32767
PositiveIntegerField() # 正整数 0 ~ 2147483647
SmallIntegerField() # 小整数 -32768 ~ 32767
# 对应mysql字段类型
PositiveSmallIntegerField----->samllint unsigned
PositiveIntegerField----->int unsigned
SmallIntegerField----->smal