设置字段为空
Django创建数据表时,默认字段不能为空,要想其为空,需要在字段后添加参数,
null=True 表示数据字段可为空
如果还想在django的Admin中维护数据时也可允许空值,需要再加一个参数
blank=True
因为Django自动做了数据验证不允许字段为空,如果想要在Django中也可以将字段保存为空值,就需要添加该参数。
使用pandas的to_sql批量插入
django自带批插入函数bulk_create,但效率不是很高,如果数据源是DataFrame格式的,则数据插入没有DataFrame的to_sql速度快,但目前to_sql只支持mysql和sqlite3,所以用这两个数据库的可以考虑使用to_sql插入数据。方法很简单,以sqlite3为例:
import pandas
import sqlite3
engine = settings.DATABASES['default']['NAME']
cn = sqlite3.connect(engine)
df.to_sql(tablename, cn, index=False, if_exists='append')
如果需要把index作为一列插入,则index=true,同时如果主键不是‘index’,可以通过index_lable参数设定插入列
df.to_sql(TABLE, cn, index=True, index_label='id', if_exists='