SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在iOS和Android的App中都可以集成。

Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用。

在比较低的级别上和数据库交互是非常简单的。你只需提供SQL 语句并调用相应的模块就可以更新或提取数据了。虽说如此,还是有一些比较棘手的细节问题需要逐个列出去解决。

一个难点是数据库中的数据和Python 类型直接的映射。对于日期类型,通常可以使用datetime 模块中的datetime 实例,或者可能是time 模块中的系统时间戳。对于数字类型,特别是使用到小数的金融数据,可以用decimal 模块中的Decimal 实例来表示。不幸的是,对于不同的数据库而言具体映射规则是不一样的,你必须参考相应的文档。

另外一个更加复杂的问题就是SQL 语句字符串的构造。千万不要使用Python字符串格式化操作符(如%) 或者.format() 方法来创建这样的字符串。如果传递给这些格式化操作符的值来自于用户的输入,那么你的程序就很有可能遭受SQL 注入攻击(参考http://xkcd.com/327 )。查询语句中的通配符? 指示后台数据库使用它自己的字符串替换机制,这样更加的安全。

不幸的是,不同的数据库后台对于通配符的使用是不一样的。大部分模块使用?或%s ,还有其他一些使用了不同的符号,比如:0 或:1 来指示参数。同样的,你还是得去参考你使用的数据库模块相应的文档。一个数据库模块的paramstyle 属性包含了参数引用风格的信息。

对于简单的数据库数据的读写问题,使用数据库API 通常非常简单。如果你要处理更加复杂的问题,建议你使用更加高级的接口,比如一个对象关系映射ORM 所提供的接口。类似SQLAlchemy 这样的库允许你使用Python 类来表示一个数据库表,并且能在隐藏底层SQL 的情况下实现各种数据库的操作。

python SQLite说一点点, python使用数据库需要注意的几点的更多相关文章

  1. python sqlite

    1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~ import sqlite3 2. 创建/打开数据库 ...

  2. 孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数

    孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天打算完成的是通用的(至少目 ...

  3. (数据科学学习手札120)Python+Dash快速web应用开发——整合数据库

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 这是我的系列教程Python+Dash快速web ...

  4. Python开发【十一章】:数据库操作Memcache、Redis

    一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...

  5. Python学习(20)python操作mysql数据库_安装

    win7系统下python3.4连接mysql数据库 1.到python官方网站下载最新python程序.根据系统有32,64位. 直接下一步,就可以安装成功.     2.在python官网中去下载 ...

  6. python模块之bsddb: bdb高性能嵌入式数据库 1.基础知识

    转自:http://blog.csdn.net/zhaoweikid/article/details/1665741 bsddb模块是用来操作bdb的模块,bdb是著名的Berkeley DB,它的性 ...

  7. Python datatime 格式转换,插入MySQL数据库

    Python datatime 格式转换,插入MySQL数据库 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-11-2 ...

  8. Python之使用Pandas库实现MySQL数据库的读写

      本次分享将介绍如何在Python中使用Pandas库实现MySQL数据库的读写.首先我们需要了解点ORM方面的知识. ORM技术   对象关系映射技术,即ORM(Object-Relational ...

  9. 用python在后端将数据写入到数据库并读取

    用python在后端将数据写入到数据库: # coding:utf- import pandas as pd from sqlalchemy import create_engine # 初始化数据库 ...

随机推荐

  1. 用A标签实现页面内容定位 点击链接跳到具体位置

    经常在维基百科等网站看到目录列表,点击链接会跳到具体的位置,小美眉一直在问是怎么做到的,其实挺简单的,用A标签实现页面内容定位就行了.实例参考微信营销理论手册的目录. 首先用A标签定义目录的链接. & ...

  2. 并发编程---Process对象的其他属性或方法

    Process对象的其他属性或方法 #join方法 from multiprocessing import Process import time,os ''' 需求:让主进程等着子进程运行完毕,才能 ...

  3. react +webpack 配置px2rem

    项目背景需要适配ipad 以及手机端,这时候当然要告别刀耕火种时代啦(自己算rem),因为已经有成熟的工具啦,即px2rem(https://www.npmjs.com/package/px2rem) ...

  4. 设置td中的table置顶

    style="vertical-align: top" <td colspan="11" rowspan="5" style=&quo ...

  5. equals和contains的区别

    equals只能判断两个变量的值是否相等.contains常用与集合中判断某个对象是否含有这个元素equals是需要两个对象完全相同才会返回true,而contains是要循环遍历容器里的所有内容后判 ...

  6. padStart()方法,padEnd()方法

    https://blog.csdn.net/ixygj197875/article/details/79090578

  7. ORM表操作

    1.在python脚本中调用django环境 在根文件夹下,创建test.py文件 import os if __name__ == '__main__': os.environ.setdefault ...

  8. 通过wui登陆 sap 页面对数据进行高级 搜索

    1: 登陆QGL系统. 在 T-CODE搜索框输入wui 会跳到搜索的web页面,进行搜索. 或者浏览器输入: https://ldciqgl.wdf.sap.corp:44300/sap(bD1lb ...

  9. ELKStack的基础入门和中文指南

    一.ELKStack的中文指南 redhat系列配置repo源 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch vi / ...

  10. (转)Java静态内部类的实例化问题

    最近遇到的一个问题,记录一下. 静态内部类可以被实例化! 1.首先在外部类中的static方法中不能使用普通内部类,因为内部类必须要与外部类建立关联才能使用,可以说是同生共死. 2.我在编码过程中,需 ...