python+sqlite3

一个小例子,

# -*- coding:utf-8 -*-
‘‘‘
Created on 2015年10月8日
(1.1)Python 2.7 Tutorial Pt 12 SQLite -
https://www.youtube.com/watch?v=Ll_ufNL5rDA
(1.2) sqlite3.connect(":memory:") 这个是亮点.
(1.3)
[Python] 74 Creating a database with SQLite 3 -
https://www.youtube.com/watch?v=n-Rtfd1Vv_M
    db.row_factory = sqlite3.Row
    在我电脑上,是否加上上面这句没什么影响.

(2.1)存储中文时,同样的必须加 u . 但是直接打印出来的是 \uxxxx 格式的内容
(2.2)如果不加 u ,报错如下:
sqlite3.ProgrammingError:
    You must not use 8-bit bytestrings unless you use a text_factory
    that can interpret 8-bit bytestrings (like text_factory = str).
    It is highly recommended that you instead just switch your application to Unicode strings.
‘‘‘
import sqlite3

# con = sqlite3.connect("sample.db")
# con = sqlite3.connect(":memory:")

def main():
    db = sqlite3.connect(":memory:")
    db.row_factory = sqlite3.Row
    db.execute("drop table if exists test")
    db.execute("create table test (t1 text, i1 int)")
    db.execute(‘insert into test (t1, i1) values(?,?)‘, (u‘一‘, 1))
    db.execute(‘insert into test (t1, i1) values(?,?)‘, (‘two‘, 2))
    db.execute(‘insert into test (t1, i1) values(?,?)‘, (‘three‘, 3))
    db.execute(‘insert into test (t1, i1) values(?,?)‘, (‘four‘, 4))
    db.commit()
    cursor = db.execute(‘select i1, t1 from test order by i1‘)
    for row in cursor:
        print(row)

    db.close()
if __name__ == "__main__": main()

  

时间: 2024-12-28 20:41:49

python+sqlite3的相关文章

python sqlite3 数据库操作

SQLite3是python的内置模块,是一款非常小巧的嵌入式开源数据库软件. 1. 导入Python SQLite数据库模块 import sqlite3 2. python sqlite3模块的API """ sqlite3.connect(database [,timeout ,other optional arguments]) 该 API 打开一个到 SQLite 数据库文件 database 的链接.您可以使用 ":memory:" 来在 RA

[Python]sqlite3二进制文件存储问题(BLOB)(You must not use 8-bit bytestrings unless you use a text_factory...)

事情是这样的: 博主尝试用Python的sqlite3数据库存放加密后的用户名密码信息,表是这样的 CREATE TABLE IF NOT EXISTS user ( userID INTEGER PRIMARY KEY AUTOINCREMENT, userStudentID BLOB NOT NULL UNIQUE ON CONFLICT IGNORE, userPassword BLOB NOT NULL ); 其中userStudentID and UserPassword 储存成了BL

python sqlite3使用详解

Python SQLITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它使用一个文件存储整个数据库,操 作十分方便.它的最大优点是使用方便,功能相比于其它大型数据库来说,确实有些差距.但是性能表现上,SQLITE并不逊色.麻雀虽小,五脏俱全, sqlite 实现了多数 sql-92 的标准,比如说 transaction . trigger 和复杂的查询等. python的数据库模块有统一的接口标准,所以数据库操作都有统一的模式,基本上都是

Python sqlite3模块的text_factory属性的使用方法研究

写这篇文章,起源于要写一个脚本批量把CSV文件(文件采用GBK或utf-8编码)写入到sqlite数据库里. Python版本:2.7.9 sqlite3模块提供了con = sqlite3.connect("D:\\text_factory.db3") 这样的方法来创建数据库(当文件不存在时,新建库),数据库默认编码为UTF-8,支持使用特殊sql语句设置编码 PRAGMA encoding = "UTF-8"; PRAGMA encoding = "U

Python Sqlite3以字典形式返回查询结果

sqlite3本身并没有像pymysql一样原生提供字典形式的游标. cursor = conn.cursor(pymysql.cursors.DictCursor) 但官方文档里已经有预留了相应的实现方案. def dict_factory(cursor, row): d = {} for idx, col in enumerate(cursor.description): d[col[0]] = row[idx] return d 使用这个函数代替conn.raw_factory属性即可.

python Sqlite3相关基本操作

1.连接数据库 1 import sqlite3 2 3 conn = sqlite3.connect('test.db') 2.创建表 1 import sqlite3 2 3 conn = sqlite3.connect('test.db') 4 print "Opened database successfully"; 5 c = conn.cursor() 6 c.execute('''CREATE TABLE COMPANY 7 (ID INT PRIMARY KEY NOT

临时数据库之python用sqlite3模块操作sqlite

SQLite是一个包含在C库中的轻量级数据库.它并不需要独立的维护进程,并且允许使用非标准变体(nonstandard variant)的SQL查询语句来访问数据库. 一些应用可是使用SQLite保存内部数据.它也可以在构建应用原型的时候使用,以便于以后转移到更大型的数据库. SQLite的主要优点: 1. 一致性的文件格式: 在SQLite的官方文档中是这样解释的,我们不要将SQLite与Oracle或PostgreSQL去比较,与我们自定义格式的数据文件相比,SQLite不仅提供了很好的 移

Python Web实战 - 基于Flask实现的黄金点游戏

一.简介 团队成员: 领航者:张旭 驾驶员:张国庆 项目简介: 项目名称:基于B/S模式的黄金点游戏 采用技术: 后端:Python + Sqlite3 前端:HTML + CSS + JS + BootStrap 项目源码:https://git.coding.net/netcon/gold-dot.git 项目地址:http://gd.conw.net/(点击试玩) 服务器环境:Ubuntu Server 14.04 + Nginx 1.4.6 + uWSGI 2.0.14 二.使用 游戏介

Python实现获取微信企业号access_token的Class

微信公众号共有三种,服务号.订阅号.企业号.它们在获取AccessToken上各有不同.其中订阅号比较坑,它的AccessToken是需定时刷新,重复获取将导致上次获取的AccessToken失效.而企业号就比较好,AccessToken有效期同样为7200秒,但有效期内重复获取返回相同结果.为兼容这两种方式,因此按照订阅号的方式处理. 处理办法与接口文档中的要求相同: 为了保密appsecrect,第三方需要一个access_token获取和刷新的中控服务器.而其他业务逻辑服务器所使用的acc