python SQLite说一点点, python使用数据库需要注意的几点
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使用数据库需要注意的几点的更多相关文章
- python sqlite
1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~ import sqlite3 2. 创建/打开数据库 ...
- 孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数
孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天打算完成的是通用的(至少目 ...
- (数据科学学习手札120)Python+Dash快速web应用开发——整合数据库
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 这是我的系列教程Python+Dash快速web ...
- Python开发【十一章】:数据库操作Memcache、Redis
一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
- Python学习(20)python操作mysql数据库_安装
win7系统下python3.4连接mysql数据库 1.到python官方网站下载最新python程序.根据系统有32,64位. 直接下一步,就可以安装成功. 2.在python官网中去下载 ...
- python模块之bsddb: bdb高性能嵌入式数据库 1.基础知识
转自:http://blog.csdn.net/zhaoweikid/article/details/1665741 bsddb模块是用来操作bdb的模块,bdb是著名的Berkeley DB,它的性 ...
- Python datatime 格式转换,插入MySQL数据库
Python datatime 格式转换,插入MySQL数据库 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-11-2 ...
- Python之使用Pandas库实现MySQL数据库的读写
本次分享将介绍如何在Python中使用Pandas库实现MySQL数据库的读写.首先我们需要了解点ORM方面的知识. ORM技术 对象关系映射技术,即ORM(Object-Relational ...
- 用python在后端将数据写入到数据库并读取
用python在后端将数据写入到数据库: # coding:utf- import pandas as pd from sqlalchemy import create_engine # 初始化数据库 ...
随机推荐
- c#中base64编码解码
//编码: byte[] bytes = Encoding.Default.GetBytes("要转换的字符"); string str = Convert.ToBase64Str ...
- 在Windows Server 2008 R2 Server中,上传视频遇到的问题(一)
在Windows 2008 R2 Server中,上传视频不能播放,以及服务器大小限制问题,这里记录我的解决方法,以免再次遇到,无所适从. 1.上传视频不能播放 打开IIS,找到“MIME类型”,如下 ...
- 【English】主语从句的引导词是如何选择?
在英语中,主要有三大从句,即名词性从句(包括主语从句,宾语从句,表语从句,同位语从句).形容词性从句(即定语从句).副词性从句(即状语从句,包括时间.条件.结果.目的.原因.让步.地点.方式等). 引 ...
- 下拉菜单被表单、图片、FLASH挡住的解决办法
设置Flash的参数: <param name="wmode" value="opaque"> <object classid="c ...
- create genil component
https://help.sap.com/viewer/79ef8b1636dd492d8fd430d2d309b90f/MDG92_SP01/en-US/16a5115454744a18e10000 ...
- jode反编译软件
1.下载 http://jode.sourceforge.net/(官网) https://sourceforge.net/projects/jode/files/(下载地址) 2.使用 下载的jod ...
- redis集群redis-cloud搭建
Redis集群中至少应该有三个节点.要保证集群的高可用,需要每个节点有一个备份机.Redis集群至少需要6台服务器. 搭建伪分布式.可以使用一台虚拟机运行6个redis实例.需要修改redis的端口号 ...
- 【LeetCode每天一题】Valid Parentheses(有效的括弧)
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...
- Junit + String/Integer/ArrayList/HashMap/TreeMap 基本使用Demo
package JavaTest.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; ...
- PHP DDOS的UDP攻击,TCP攻击,和CC攻击的核心代码
网络安全向,请勿用作非法用途 CC攻击模块: <?phpecho “状态 : 正常运行中…..<br>”;echo “================================ ...