zoukankan      html  css  js  c++  java
  • 爬虫与Python:(四)爬虫进阶二之数据存储(数据库存储)——8.PostgreSQL存储

    安装PostgreSQL数据库方法详见:https://www.cnblogs.com/luyj00436/p/15525370.html

    安装库

    Psycopg是Python编程语言中最流行的PostgreSQL数据库适配器,其主要功能是完整实现Python DB API 2.0规范和线程安全(多个线程可以共享相同的链接)。它专为大量多线程应用程序而设计,可以创建和销毁大量游标,并创建大量并发“INSERT”或“UPDATE”。

    Psycopg 2 主要在C语言中作为libpq包装实现,既高效又安全,它具有客户端和服务端游标,异步通信通知,“复制到/复制”支持。许多Python类型都支持开箱即用,适用匹配PostgreSQL数据类型,通过灵活的物体适应系统,可以扩展和定制适应性。Psycopg 2 兼容Unicode和Python 3。

    在学习之前先安装Psycopg 2库,可以使用pip命令进行安装。

    pip install psycopg2

    在确保已经有一个可以连接的PostgreSQL 数据的情况下,进行接下来的学习和操作。下面是获取pg数据连接的示例。

     1 import psycopg2
     2 
     3 # 创建PostgreSQL数据库连接对象
     4 conn = psycopg2.connect(
     5     database="postgres",
     6     user="postgres",
     7     password="123456",
     8     host="localhost",
     9     port="5432"
    10 )
    11 
    12 cur = conn.cursor() # 创建执行对象

    通过cursor()方法拿到了指针对象,有了这个就可以用它执行sql语句。这与之前讲到的MySQL 操作类似。

    1. 插入数据

    插入数据时,只需要用户将插入的sql语句写好,然后使用cur执行操作对象execute()方法即可完成sql的执行,示例代码如下:

     1 import psycopg2
     2 
     3 # 创建PostgreSQL数据库连接对象
     4 conn = psycopg2.connect(
     5     database="postgres",
     6     user="postgres",
     7     password="123456",
     8     host="localhost",
     9     port="5432"
    10 )
    11 cur = conn.cursor() # 创建执行对象
    12 
    13 # 创建表
    14 cur.execute("CREATE TABLE student(id integer,name varchar ,sex varchar);")
    15 # 插入数据
    16 cur.execute("INSERT INTO student(id,name,sex) VALUES(%s,%s,%s)",(1,'Aspirin','M'))
    17 cur.execute("INSERT INTO student(id,name,sex) VALUES(%s,%s,%s)",(2,'Taxol','F'))
    18 cur.execute("INSERT INTO student(id,name,sex) VALUES(%s,%s,%s)",(3,'Dixheral','M'))
    19 
    20 # 关闭连接
    21 conn.commit()
    22 cur.close()
    23 conn.close()

    2. 查询数据

    查询数据时,可以在执行完sql语句后,调用cur的fetchall()方法获取结果。示例代码如下:

    cur.execute('SELECT * FROM student')
    result = cur.fetchall()

    3. 修改和删除数据

    修改与删除数据与插入类似,唯一不同的就是sql语句,示例代码如下:

     1 import psycopg2
     2 
     3 # 创建PostgreSQL数据库连接对象
     4 conn = psycopg2.connect(
     5     database="postgres",
     6     user="postgres",
     7     password="123456",
     8     host="localhost",
     9     port="5432"
    10 )
    11 cur = conn.cursor() # 创建执行对象
    12 
    13 # 修改数据
    14 cur.execute("UPDATE student set name='TiMi',sex='M' WHERE id=2")
    15 # # 删除数据
    16 cur.execute("DELETE from student WHERE id=3;")
    17 
    18 # 关闭连接
    19 conn.commit()
    20 print(cur.rowcount ,"条记录被修改")
    21 cur.close()
    22 conn.close()
    有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。
  • 相关阅读:
    CoreData数据库浅析
    FMDB第三方框架
    SQLite浅析
    iOS开发工程师面试题(二)
    iOS开发工程师面试题(一)
    RunTime&RunLoop初见
    GCD定时器
    2016年4月21百度iOS实习生在线笔试题&编程题
    网络天荒地老之UIWebView&WebKit
    expdp/impdp
  • 原文地址:https://www.cnblogs.com/luyj00436/p/15434362.html
Copyright © 2011-2022 走看看