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