Django数据库使用遇到的坑

设置字段为空

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='

你可能感兴趣的:(自学,Django,模型)