zoukankan      html  css  js  c++  java
  • psycopg2接口的基本用法

    转载自:http://zhiwei.li/text/2012/02/05/psycopg2接口的基本用法/

    与其他实现了DB API 2.0协议的其他数据库用户基本一致。

    import psycopg2
    
    ##连接到一个存在的数据库
    conn = psycopg2.connect(“dbname=test user=postgres”)
    ##connect()建立一个新的数据库会话,并返回一个connect实例
    
    ##打开一个光标,用来执行数据库操作
    cur = conn.cursor()
    
    ##执行命令:建立一个新表
    
    cur.execute(“CREATE TABLE test (id serial PRIMARY KEY, num integer, data varchar);”)
    
    ##传递数据用来填充查询占位符, 让Psycopg执行正确的转换(不再有SQL注入)
    
    cur.execute(“INSERT INTO test (num, data) VALUES ('%s', '%s');” %(100, “abc’def”))
    
    ##查询数据库,取得数据作为python对象
    
    cur.execute(“SELECT * FROM test;”)
    cur.fetchone()
    (1, 100, “abc’def”)
    
    ##使改变永久存入数据库
    
    conn.commit()
    
    ##关闭到数据库的通信
    
    cur.close()
    conn.close()
    

    python数据类型到SQL类型的适配

    日期和时间对象: python内建的datetime, date, time, timedelta 被转换成 PostgreSQL的 timestamp, date, time, interval 数据类型. Time zones are supported too. The Egenix mx.DateTime objects are adapted the same way:

    >>> dt = datetime.datetime.now()
    
    >>> dt datetime.datetime(2010, 2, 8, 1, 40, 27, 425337)
    
    >>> cur.mogrify(“SELECT %s, %s, %s;”, (dt, dt.date(), dt.time())) “SELECT ‘2010-02-08T01:40:27.425337’, ‘2010-02-08′, ’01:40:27.425337′;”
    
    >>> cur.mogrify(“SELECT %s;”, (dt – datetime.datetime(2010,1,1),)) “SELECT ’38 days 6027.425337 seconds’;”
    
  • 相关阅读:
    java数据结构——哈希表(HashTable)
    java数据结构——红黑树(R-B Tree)
    java数据结构——二叉树(BinaryTree)
    java数据结构——递归(Recursion)例题持续更新中
    电路布线
    Cordova 入门
    mysql 分组加行号
    数据库表添加行号
    java jsp自定义标签
    java web Listener的简单使用案例
  • 原文地址:https://www.cnblogs.com/XXCXY/p/5185273.html
Copyright © 2011-2022 走看看