IntegrityError错误
Python插入数据库提交失败,一直走IntegrityError错误,没打印错误信息(一定注意编码规范,记住打印错误信息),以为插不进去,弄了好久,最后打印了错误信息
(sqlite3.IntegrityError) samples.file_type may not be NULL [SQL: u'INSERT INTO samples (file_size, file_type, md5, crc32, sha1, sha256, sha512, ssdeep) VALUES (?, ?, ?, ?, ?, ?, ?, ?)'] [parameters: (53, None, 'hello', 'crc32', 'sha1', 'sha256', 'sha512', None)]
提示为file_type不能为空,但是我建表的时候file_type设置的是不允许为空,而插入的时候file_type传入为NULL,所以Insert不成功,报错IntegrityError
- from sqlalchemy import Column, Integer, String
- from sqlalchemy import create_engine
- from sqlalchemy.ext.declarative import declarative_base
- from sqlalchemy import Text, Index
- from sqlalchemy.exc import SQLAlchemyError, IntegrityError
- from sqlalchemy.orm import sessionmaker
- Base = declarative_base()
- class Sample(Base):
- """Submitted files details."""
- __tablename__ = "samples"
- id = Column(Integer(), primary_key=True)
- file_size = Column(Integer(), nullable=False)
- file_type = Column(Text(), nullable=False)
- md5 = Column(String(32), nullable=False)
- crc32 = Column(String(8), nullable=False)
- sha1 = Column(String(40), nullable=False)
- sha256 = Column(String(64), nullable=False)
- sha512 = Column(String(128), nullable=False)
- ssdeep = Column(String(255), nullable=True)
- __table_args__ = Index("hash_index", "md5", "crc32", "sha1",
- "sha256", "sha512", unique=True),
- def __repr__(self):
- return "<Sample('{0}','{1}')>".format(self.id, self.sha256)
- def __init__(self, md5, crc32, sha1, sha256, sha512,
- file_size, file_type=None, ssdeep=None):
- self.md5 = md5
- self.sha1 = sha1
- self.crc32 = crc32
- self.sha256 = sha256
- self.sha512 = sha512
- self.file_size = file_size
- if file_type:
- self.file_type = file_type
- if ssdeep:
- self.ssdeep = ssdeep
- engine = create_engine("sqlite:///cuckoo.db",echo=True) #返回连接引擎
- metadata = Base.metadata
- metadata.create_all(engine) #连接或者创建
- #sample_mike = Sample("hello", "crc32", "sha1", "sha256", "sha512", 53, None, None) #非空数据不能传空
- sample_mike = Sample("hello", "crc32", "sha1", "sha256", "sha512", 53, "aa", None)
- Session = sessionmaker(bind=engine) session = Session() session.add(sample_mike) #数据库会话
try:
session.commit() #提交
except IntegrityError as e:
print e
except SQLAlchemyError as e:
print e
最后在网上看到一个比较有用的工具sqlite,查看db数据库
sqlite、db、insert.py下载 http://files.cnblogs.com/files/aliflycoris/db.zip
IntegrityError错误的更多相关文章
- ForeignKey.on_delete
当由一个 ForeignKey 引用的对象被删除,默认情况下,Django模拟SQL的 ON DELETE CASCADE 来删除对象的 ForeignKey 关系.这样可以覆盖指定的 on_dele ...
- 航空概论(历年资料,引之百度文库,PS:未调格式,有点乱)
航空航天尔雅 选择题1. 已经实现了<天方夜谭>中的飞毯设想.—— A——美国2. 地球到月球大约—— C 38 万公里3. 建立了航空史上第一条定期空中路线—— B——德国4. 对于孔明 ...
- IntegrityError at /admin/users/userprofile/add/ (1452, 'Cannot add or update a child row: a foreign key constraint fails (`mxonline`.`django_admin_log`, CONSTRAINT `django_admin_log_user_id_c564eba6_
报错现象 在执行 django 后台管理的时候添加数据导致 1452 错误 报错代码 IntegrityError at /admin/users/userprofile/add/ (1452, 'C ...
- Flask错误收集 【转】
感谢大佬 ---> 原文链接 一.pydev debugger: process XXXXX is connecting 这个错误网上找了很多资料都无法解决,尝试过多种方法后,对我来说,下面这个 ...
- Flask 教程 第七章:错误处理
本文翻译自The Flask Mega-Tutorial Part VII: Error Handling 这是Flask Mega-Tutorial系列的第七部分,我将告诉你如何在Flask应用中进 ...
- mysql插入数据报错IntegrityError: (1062, "Duplicate entry 'xx' for key 'xxxxx'")
1.问题描述 MySQL插入数据的时候报错,提示如下: IntegrityError: (1062, "Duplicate entry 'xx' for key 'xxxxx'") ...
- airflow当触发具有多层subDAG的任务的时候,出现[Duplicate entry ‘xxxx’ for key dag_id]的错误的问题处理
当触发一个具有多层subDAG的任务时,会发现执行触发的task任务运行失败,但是需要触发的目标DAG已经在运行了,dag log 错误内容: [2019-11-21 17:47:56,825] {b ...
- python 数据库错误处理
DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常: 异常 描述 Warning 当有严重警告时触发,例如插入数据是被截断等等.必须是 StandardError 的子类. Er ...
- django admin 添加用户出现外键约束错误
今天在做mxonline项目时,注册了用户表进admin后,想在后台添加一个用户试试,结果出现了错误,经过一番搜索发现以下两个解决方法,不过我只用了一种 报错信息: IntegrityError: ( ...
随机推荐
- 用canvas实现图片滤镜效果详解之灰度效果
前面展示了一些canvas实现图片滤镜效果的展示,并且给出了相应的算法,下面来介绍一下具体的实现方法. 前面介绍的特效中灰度效果最简单,就从这里开始介绍吧. 1.获取图像数据 img.src = ’h ...
- 解决mysql中文乱码(总)
转自:http://hi.baidu.com/cnvienna/blog/item/2e99efdfd94fc61862279801.html MySQL会出现中文乱码的原因不外乎下列几点: .ser ...
- Linux Shell编程(4): 逻辑运算符、逻辑表达式详解
shell的逻辑运算符 涉及有以下几种类型,因此只要适当选择,可以解决我们很多复杂的判断,达到事半功倍效果. 一.逻辑运算符 逻辑卷标 表示意思 1. 关于档案与目录的侦测逻辑卷标! -f 常用!侦测 ...
- EIG集团简单介绍
有朋友会问为什么要介绍EIG集团,他们是干什么的?与域名.主机.IDC行业资讯等有啥关系?EIG集团很牛逼么?带着这些疑问,简单的给大家做个介绍,希望能帮助大家了解这个IDC行业里面的“魔鬼”! EI ...
- hdu5248 序列变换
百度之星的题.其实最简单的方法是二分答案,我竟然没想到,直接去想O(n)的去了,最后导致滚粗... 题意就是给一个数列,要求把它处理成递增序列. 首先我想到了O(n^2)的算法,然后再优化成O(n)过 ...
- 用ASP.Net写一个发送ICQ信息的程序
用ASP.Net写一个发送ICQ信息的程序 这里我给大家提供一个很实用的例子,就是在线发送ICQ信息.想一想我们在网页上直接给朋友发送ICQ信息,那是多么美妙的事情啊.呵呵,在吹牛啊,其实ICQ本来就 ...
- fscanf的返回值未成功输入的元素个数 .xml
pre{ line-height:1; color:#38ede1; background-color:#5b2814; font-size:16px;}.sysFunc{color:#008080; ...
- html --- canvas --- javascript --- 在线画板
canvas功能十分强大,制作一个简易画板易如反掌,主要涉及canvas的画线能力,javascript鼠标点击事件 如有问题请参考:http://www.html5party.com/857.htm ...
- Unity 5 引擎收费版和免费版的区别(转)
最新Unity 5的Professional Edition(收费版)具备全新而强大的功能,除了全局动态光照或是最新的基于物理的着色器之外,也把原本分开销售的Team License放入,并含有12个 ...
- 数往知来 JavaScript<十三>
一.javaScript 语法:大小写敏感,弱类型(所有类型都用var进行引导.声明) 写在<script></script>标签里 不可以放在title里 var num= ...