Python連接到PostgreSQL數(shù)據(jù)庫的方法詳解
本文介紹了創(chuàng)建與 PostgreSQL 上的數(shù)據(jù)庫的連接的過程。 我們需要安裝 PostgreSQL 和創(chuàng)建數(shù)據(jù)庫等先決條件,如下所述。
在系統(tǒng)中安裝 PostgreSQL
顧名思義,PostgreSQL 是一款為高效管理數(shù)據(jù)庫系統(tǒng)而創(chuàng)建的 SQL 系統(tǒng)軟件。
在連接Python之前需要創(chuàng)建數(shù)據(jù)庫。 Postgres,實(shí)現(xiàn)它。
許多剛開始學(xué)習(xí)數(shù)據(jù)庫開發(fā)的初學(xué)者仍然感到困惑。 據(jù)了解,數(shù)據(jù)庫是使用 pgAdmin 而不是 PostgreSQL 創(chuàng)建的。
實(shí)際上,前者管理數(shù)據(jù)庫,而后者是構(gòu)建數(shù)據(jù)庫的框架。
在創(chuàng)建數(shù)據(jù)庫之前,pgAdmin 需要與 PostgreSQL 鏈接。 所以,首先需要安裝PostgreSQL。
Postgres的安裝包可以在PostgreSQL官網(wǎng)的下載區(qū)找到。 然后,用戶可以從那里下載并安裝該應(yīng)用程序。
有多種安裝程序可用于 Mac、Linux 和 Windows 等操作系統(tǒng)。
用戶還可以獲取源代碼并在其 PC 上手動編譯并安裝 pgAdmin4。
pgAdmin 是一個用于管理在 PostgreSQL 上運(yùn)行的數(shù)據(jù)庫的有效工具。 可以在應(yīng)用程序的在線網(wǎng)頁上找到安裝程序等可下載文件。
人們可以從 pgAdmin 的所有穩(wěn)定版本的列表中進(jìn)行選擇,以及與 PostgreSQL 過程類似的其他安裝包發(fā)行版。
一旦 pgAdmin 安裝到系統(tǒng)中,就可以創(chuàng)建數(shù)據(jù)庫。
使用 pgAdmin 創(chuàng)建數(shù)據(jù)服務(wù)器和數(shù)據(jù)庫
本節(jié)包含兩個小節(jié)。 第一部分解釋如何創(chuàng)建數(shù)據(jù)服務(wù)器,第二部分重點(diǎn)介紹數(shù)據(jù)庫。
在 pgAdmin 中創(chuàng)建數(shù)據(jù)服務(wù)器
在創(chuàng)建任何數(shù)據(jù)庫之前,需要正確設(shè)置 pgAdmin。 系統(tǒng)會提示您輸入主密碼,該密碼將在創(chuàng)建或訪問新數(shù)據(jù)庫時(shí)使用。
提供密碼后將出現(xiàn) pgAdmin 網(wǎng)頁。 必須搭建新的服務(wù)器來生成新的數(shù)據(jù)庫。
添加新服務(wù)器按鈕會創(chuàng)建一個對話窗口,可以在其中構(gòu)建新服務(wù)器。
首先顯示的窗口提供了正在設(shè)置的服務(wù)器的功能。 在本文中,其中一些將由用戶輸入提供,而其他一些則由系統(tǒng)生成并保持原樣。
首先,需要服務(wù)器的名稱。 之后,轉(zhuǎn)到連接菜單。
那里需要主機(jī)名,通常是 localhost。 端口必須設(shè)置為 5432。
遵循以上幾點(diǎn)就足以創(chuàng)建一個有用的數(shù)據(jù)服務(wù)器。
在 pgAdmin 中創(chuàng)建數(shù)據(jù)庫
一旦數(shù)據(jù)服務(wù)器啟動并運(yùn)行,就可以創(chuàng)建數(shù)據(jù)庫。 創(chuàng)建的服務(wù)器顯示在應(yīng)用程序窗口的左側(cè),稱為儀表板。
左側(cè)面板中服務(wù)器名稱旁邊有一個下拉圖標(biāo)。 單擊此圖標(biāo)時(shí)會彈出密碼對話框,請求系統(tǒng)的主密碼。
菜單顯示系統(tǒng)內(nèi)創(chuàng)建的所有服務(wù)器。 它保持停用狀態(tài),直到通過單擊并出現(xiàn)密碼提示將其激活。
右鍵單擊數(shù)據(jù)庫區(qū)域并選擇創(chuàng)建。 為數(shù)據(jù)庫命名,然后在所有者部分選擇 postgres; 然后,必須設(shè)置數(shù)據(jù)庫定義。
數(shù)據(jù)庫的定義有多個選項(xiàng)需要設(shè)置。 以下是眾多可用選項(xiàng)中的一些更重要的選項(xiàng)。
- 編碼必須設(shè)置為 - UTF - 8。
- 模板應(yīng)在 Postgres 中設(shè)置。
- 表空間應(yīng)設(shè)置為 pg_default。
排序規(guī)則和字符類型應(yīng)按原樣設(shè)置,而連接限制設(shè)置為-1。 轉(zhuǎn)到標(biāo)有 sql 的菜單將給出此處使用的查詢的概述。
單擊“保存”將創(chuàng)建一個數(shù)據(jù)庫。
將 PostgreSQL 數(shù)據(jù)庫連接到 Python 的步驟
使用 Python 連接到數(shù)據(jù)庫分為三個步驟。 首先,服務(wù)器的信息存儲在配置文件中。
將創(chuàng)建一個 Python 文件,用于解析配置 (.ini) 文件并在下一步中加載服務(wù)器。 在最后一步中,創(chuàng)建一個連接數(shù)據(jù)庫的 Python 文件。
在本文中,程序使用 psycopg2 導(dǎo)入包連接到 PostgreSQL 數(shù)據(jù)庫,獲取數(shù)據(jù)庫版本,然后打印它們。
創(chuàng)建存儲服務(wù)器信息的配置 (.ini) 文件
該文件存儲與服務(wù)器相關(guān)的詳細(xì)信息,有助于 config.py 文件配置數(shù)據(jù)庫。 文件頭位于文件的頂部,用于聲明所使用的 RDBMS。
- host - 此處提供所使用的主機(jī)或服務(wù)器。
- database - 此處給出了需要針對的特定數(shù)據(jù)庫。
- user - 用戶應(yīng)指定為 postgres,因?yàn)樗?RDBMS。
- password - 必須在此處輸入創(chuàng)建數(shù)據(jù)庫時(shí)在 pgAdmin 中給出的主密碼。
創(chuàng)建信息文件后,可以在配置文件中使用它。
創(chuàng)建解析配置文件的 Python 文件
該程序使用導(dǎo)入包c(diǎn)onfigparser。 方法配置使用兩個參數(shù)聲明:文件名和部分。
變量解析器被初始化,從變量文件名中讀取文件。
下面是從數(shù)據(jù)庫中提取項(xiàng)目的 get 方法。 get 部分放在 if-else 語句內(nèi),其中 else 方法處理異常。
最后返回變量數(shù)據(jù)庫。
from configparser import ConfigParser def config(filename='server_info.ini', section='postgresql'): parser = ConfigParser() parser.read(filename) database = {} if parser.has_section(section): params = parser.items(section) for param in params: database[param[0]] = param[1] else: raise Exception('Section {0} not found in the {1} file'.format(section, filename)) return database
連接 PostgreSQL 數(shù)據(jù)庫的步驟
該程序有兩個導(dǎo)入文件。
- psycopg2
- config
創(chuàng)建了一個連接到 PostgreSQL 數(shù)據(jù)庫服務(wù)器的方法 connect。
聲明了一個變量 param,用于讀取連接的參數(shù)。 這些參數(shù)用于連接到數(shù)據(jù)庫服務(wù)器。
語法 psycopg2.connect(**params)
加載連接參數(shù)并連接到數(shù)據(jù)庫服務(wù)器。 聲明了另一個變量 var_cur,用于存儲由 connection.cursor 語法創(chuàng)建的游標(biāo)。
連接建立后,將顯示數(shù)據(jù)庫的 PostgreSQL 版本。 var_cur.execute 執(zhí)行語句 SELECT version()
。
該版本被加載到變量 version_of_database 中,然后由 fetchone()
函數(shù)顯示,該函數(shù)一次獲取單個元素。 然后打印該變量。
獲取數(shù)據(jù)庫版本后,使用 var_cur.close()
關(guān)閉游標(biāo)。
添加異常處理塊以引發(fā)錯誤異常。 在 except 塊內(nèi),當(dāng)無法連接到數(shù)據(jù)庫或未找到數(shù)據(jù)庫時(shí),程序會打印一條錯誤消息。
在異常處理結(jié)束時(shí),添加一個finally 塊,使用語法 connection.close()
關(guān)閉連接。 連接關(guān)閉后,數(shù)據(jù)庫會打印一條消息,確認(rèn)連接已關(guān)閉。
最后調(diào)用方法connection。
import psycopg2 from config import config def connect(): connection = None try: params = config() print('Connection made to the postgresql database') connection = psycopg2.connect(**params) var_cur = connection.cursor() print('Database version is - ') var_cur.execute('SELECT version()') version_of_database = var_cur.fetchone() print(version_of_database) var_cur.close() except (Exception, psycopg2.DatabaseError) as error: print(error) finally: if connection is not None: connection.close() print('Database connection closed.') if __name__ == '__main__': connect()
輸出:
總結(jié)
本文討論數(shù)據(jù)庫創(chuàng)建并解釋如何在 PostgreSQL 中創(chuàng)建數(shù)據(jù)庫。 軟件工具 pgAdmin 的不同功能。
大家將詳細(xì)學(xué)習(xí)如何使用 Python 連接數(shù)據(jù)庫,以便快速掌握并在實(shí)際項(xiàng)目中使用。
到此這篇關(guān)于Python連接到PostgreSQL數(shù)據(jù)庫的方法詳解的文章就介紹到這了,更多相關(guān)Python連接PostgreSQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何解決django-celery啟動后迅速關(guān)閉
在本篇文章里小編給大家整理的是關(guān)于django-celery啟動后迅速關(guān)閉的解決方法,有需要的朋友們學(xué)習(xí)下。2019-10-10python實(shí)現(xiàn)Oracle查詢分組的方法示例
這篇文章主要介紹了python實(shí)現(xiàn)Oracle查詢分組的方法,結(jié)合實(shí)例形式分析了python使用group by子句及having子句實(shí)現(xiàn)Oracle查詢分組的相關(guān)操作技巧,需要的朋友可以參考下2020-04-04python基于Node2Vec實(shí)現(xiàn)節(jié)點(diǎn)分類及其可視化示例詳解
這篇文章主要為大家介紹了python基于Node2Vec實(shí)現(xiàn)節(jié)點(diǎn)分類及其可視化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Python Dict找出value大于某值或key大于某值的所有項(xiàng)方式
這篇文章主要介紹了Python Dict找出value大于某值或key大于某值的所有項(xiàng)方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06pytorch.range()和pytorch.arange()的區(qū)別及說明
這篇文章主要介紹了pytorch.range()和pytorch.arange()的區(qū)別及說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08