{"id":783,"date":"2021-11-22T11:14:38","date_gmt":"2021-11-22T03:14:38","guid":{"rendered":"https:\/\/dasmz.com\/?p=783"},"modified":"2021-11-22T11:16:47","modified_gmt":"2021-11-22T03:16:47","slug":"%e9%80%9a%e7%94%a8%e4%bb%a3%e7%90%86%e6%b1%a0%e9%a1%b9%e7%9b%ae%ef%bc%8c%e5%8a%9f%e8%83%bd%e5%9e%8b%e5%87%bd%e6%95%b0%ef%bc%8cpostgresql%e6%95%b0%e6%8d%ae%e5%ba%93%e7%9a%84%e8%bf%9e%e6%8e%a5-2021-11-2","status":"publish","type":"post","link":"https:\/\/dasmz.com\/?p=783","title":{"rendered":"\u901a\u7528\u4ee3\u7406\u6c60\u9879\u76ee\uff0c\u529f\u80fd\u578b\u51fd\u6570\uff0cPostgreSQL\u6570\u636e\u5e93\u7684\u8fde\u63a5 2021-11-22"},"content":{"rendered":"\n<p>\u4f7f\u7528\u7684\u6a21\u5757\u4e3apsycopg2<\/p>\n\n\n\n<p>\u5b89\u88c5\u65b9\u5f0f:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pip3 install psycopg2-binary<\/pre>\n\n\n\n<p>\u6a21\u5757\u6d4b\u8bd5<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#!\/usr\/bin\/python3\n# -*- coding: utf-8 -*-\n\nimport psycopg2\n\n#   PostgreSQL \u6570\u636e\u5165\u5e93\u6a21\u5757 \u6b63\u786e\u6267\u884c\u8fd4\u56deY \u5426\u5219\u8fd4\u56deN  \u589e \/ \u5220 \/ \u6539\ndef runDataInPostgreSQLDB(aHost, aPort, aDB, aUser, aPass, aSQL):\n    \"\"\" Connect to the PostgreSQL database server. insert\/delete\/update\"\"\"\n    conn = None\n    try:\n        print(' + Database connection START')\n        conn = psycopg2.connect(dbname = aDB, user = aUser, password = aPass, host = aHost, port = aPort)\t\t\n        cur = conn.cursor()\n        cur.execute(aSQL)\n        conn.commit()\n        cur.close()\n        return 'Y'\n    except (Exception, psycopg2.DatabaseError) as e:\n        print(e)\n        return 'N'\n    finally:\n        if conn is not None:\n            conn.close()\n            print(' + Database connection CLOSE')\n\n#   PostgreSQL \u6570\u636e\u8bfb\u53d6\u6a21\u5757 \u6b63\u786e\u8fd4\u56de\u6570\u636e\u5217\u8868 \u9519\u8bef\u8fd4\u56de\u7a7a\u5217\u8868\ndef runDataOutPostgreSQLDB(aHost, aPort, aDB, aUser, aPass, aSQL):\n    \"\"\" Connect to the PostgreSQL database server. select\"\"\"\n    conn = None\n    try:\n        print(' + Database connection START')\n        conn = psycopg2.connect(dbname = aDB, user = aUser, password = aPass, host = aHost, port = aPort)\t\t\n        cur = conn.cursor()\n        cur.execute(aSQL)       \n        data = cur.fetchall()\n        cur.close()\n        return data\n    except (Exception, psycopg2.DatabaseError) as e:\n        print(e)\n        return []\n    finally:\n        if conn is not None:\n            conn.close()\n            print(' + Database connection CLOSE')\n            \naSQL = \"select vtype,ip,port from mdata limit 3;\"            \nvData = runDataOutPostgreSQLDB(aHost = '127.0.0.1', aPort = 5432, aDB = \"\u4f60\u7684\u6570\u636e\u5e93\u5b9e\u4f8b\u540d\u79f0\", aUser = \"\u4f60\u7684\u6570\u636e\u5e93\u7528\u6237\u540d\", aPass = \"\u4f60\u7684\u6570\u636e\u5e93\u5bc6\u7801\", aSQL = \"\u4e00\u4e2aSQL\")  \nprint(vData)    \n<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">\/\/ \u6d4b\u8bd5\u7ed3\u679c\n\nroot@PostgreSQLDatabase:~\/src\/invoker# python3 tmp1058.py \n + Database connection START\n + Database connection CLOSE\n[('socks4', '203.207.52.38', 5430), ('socks4', '103.146.170.244', 5678)]\nroot@PostgreSQLDatabase:~\/src\/invoker# \n<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">\u5982\u679c\u7528\u547d\u4ee4\u884c\u8fde\u63a5\u6570\u636e\u5e93\n# psql -d \u4f60\u7684\u6570\u636e\u5e93\u5b9e\u4f8b\u540d\u79f0 -h 127.0.0.1 -p 5432 -U \u4f60\u7684\u6570\u636e\u5e93\u7528\u6237\u540d -W <\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"574\" height=\"446\" src=\"https:\/\/dasmz.com\/wp-content\/uploads\/2020\/12\/DONATE.jpg\" alt=\"Donate\" class=\"wp-image-18\"\/><figcaption>\u4e91\u4e5e\u8ba8<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u4f7f\u7528\u7684\u6a21\u5757\u4e3apsycopg2 \u5b89\u88c5\u65b9\u5f0f: pip3 install psycopg2-binary \u6a21\u5757\u6d4b\u8bd5  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/dasmz.com\/index.php?rest_route=\/wp\/v2\/posts\/783"}],"collection":[{"href":"https:\/\/dasmz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dasmz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dasmz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dasmz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=783"}],"version-history":[{"count":2,"href":"https:\/\/dasmz.com\/index.php?rest_route=\/wp\/v2\/posts\/783\/revisions"}],"predecessor-version":[{"id":785,"href":"https:\/\/dasmz.com\/index.php?rest_route=\/wp\/v2\/posts\/783\/revisions\/785"}],"wp:attachment":[{"href":"https:\/\/dasmz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dasmz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dasmz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}