數(shù)據(jù)庫技術(shù)及應用第10章 Python數(shù)據(jù)庫應用系統(tǒng)開發(fā)技術(shù)_第1頁
數(shù)據(jù)庫技術(shù)及應用第10章 Python數(shù)據(jù)庫應用系統(tǒng)開發(fā)技術(shù)_第2頁
數(shù)據(jù)庫技術(shù)及應用第10章 Python數(shù)據(jù)庫應用系統(tǒng)開發(fā)技術(shù)_第3頁
數(shù)據(jù)庫技術(shù)及應用第10章 Python數(shù)據(jù)庫應用系統(tǒng)開發(fā)技術(shù)_第4頁
數(shù)據(jù)庫技術(shù)及應用第10章 Python數(shù)據(jù)庫應用系統(tǒng)開發(fā)技術(shù)_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

10.1.1Python語言概述

1.Python語言的誕生和發(fā)展Python語言誕生于1990年,它由GuidovanRossum設計并領導開發(fā),是解釋型語言ABC的一種繼承。2000年10月,Python2.0正式發(fā)布,2010年7月,Python2.x系列的最后一個版本2.7發(fā)布,該版本已于2020年1月1日終止支持。2008年12月,Python3.0正式發(fā)布,2019年10月,3.8版發(fā)布,并預計2020年10月將正式發(fā)布3.9版。Python被TIOBE評為2010、2018年度語言,2018年9月超越C++居排行榜第3名(前2名為C和Java)。2.Python語言的特點

(1)簡潔易讀(2)可移值性好(3)可擴展性強

(4)支持面向?qū)ο?5)通用靈活(6)開源和豐富的類庫

10.1.2開發(fā)環(huán)境搭建1.安裝Python解釋器

官網(wǎng)(/downloads)上下載,目前以3.6或3.7版為好,3.8版還處于bugfix階段(20年8月)。2.Python程序運行方式

(1)交互式運行方式

(2)文件式(批量式)運行方式

IDLE是Python自帶的集成開發(fā)環(huán)境,功能更強大的Python語言集成開發(fā)環(huán)境是PyCharm。當然還有其他的開發(fā)環(huán)境。3.安裝PyCharmPyCharm的安裝包可以從它的官網(wǎng)https://www.jetbrains.com/pycharm上下載。PyCharm有收費的專業(yè)版(ProfessionalEdition)和免費的社區(qū)版(CommunityEdition)兩個版本。

10.2.1第三方庫概述Python語言有標準庫和第三方庫兩類庫,標準庫隨Python安裝包一起發(fā)布,用戶可以隨時使用;第三方庫由全球開發(fā)者分布式維護,需要安裝后才能使用。第三方程序包括庫(library)、模塊(module)、類(class)和包(package)等多種命名,這里不對這些命名進行區(qū)分,統(tǒng)一將這些可重用代碼稱為“庫”。第三方庫并非都采用Python語言編寫,很多采用C、C++等語言編寫的專業(yè)庫可以通過簡單的接口封裝供Python語言程序調(diào)用,這樣的黏性功能使得Python語言被稱為“膠水語言”。Python的官網(wǎng)(/pypi)上提供了第三方庫索引功能(PythonPackageIndex,PyPI)。

10.2.2安裝第三方庫pip工具安裝、自定義安裝和文件安裝三種安裝方法。1.pip工具安裝

pip是Python官方提供并維護的第三方庫在線安裝工具。pip是Python內(nèi)置命令,只能在Windows命令提示符窗口中執(zhí)行,執(zhí)行pip–h命令將列出pip常用的子命令。

例10.1

安裝將Python程序(.py文件)打包成可執(zhí)行文件的第三方庫PyInstaller。

pipinstallpyinstaller

例10.2

查看已安裝的PyInstaller庫的相關信息。

pipshowpyinstaller

例10.3

列出系統(tǒng)中已經(jīng)安裝的第三方庫清單。

piplist

10.2.2安裝第三方庫1.pip工具安裝例10.4

下載Python專用數(shù)據(jù)庫訪問第三方庫pymssql。

pipdownloadpymssql

本例僅僅下載pymssql的安裝文件(下載哪一個文件與執(zhí)行本命令的日期有關),并不真正安裝它。例10.5

使用清華大學的鏡像源安裝基于Qt的專業(yè)級GUI第三方庫PyQt5。

pipinstallpyqt5-i/simple2.自定義安裝

pip是安裝Python第三方庫的最主要方式,有一些第三方庫暫時不能用pip安裝。

自定義安裝是指按照第三方庫提供的步驟和方式安裝,一般適用于pip中尚未登記或安裝失敗的第三方庫。

10.2.2安裝第三方庫3.文件安裝美國加州大學爾灣分校提供了一個可幫助用戶獲得Windows平臺下第三方庫文件的網(wǎng)站(/~gohlke/pythonlibs)。該網(wǎng)站列出了一批在pip安裝中可能出現(xiàn)問題的第三方庫,用戶可根據(jù)Python語言的版本和Windows的版本選擇對于的.whl文件下載。例10.6

安裝例10.4中下載的第三方庫pymssql,假定安裝文件在D:\Python文件夾中。

pipinstalld:\python\pymssql-2.1.4-cp36-cp36m-win_amd64.whl如果需要在沒有網(wǎng)絡的環(huán)境下安裝第三方庫,可以采用文件安裝方法。如果已經(jīng)安裝了PyCharm集成開發(fā)環(huán)境,則也可以在PyCharm中安裝第三方庫。

10.2.3導入第三方庫使用import導入庫有以下3種方法。1)import<庫名>[as<別名>]

這種方法導入第三方庫后,可以使用該庫中的所有函數(shù),調(diào)用庫中函數(shù)的格式為:

<庫名>.<函數(shù)名>([<函數(shù)參數(shù)>])2)from<庫名>import{*|<函數(shù)名>[,…n]}

這種方法導入第三方庫后,可以使用該庫中的所有函數(shù)或者所列出的函數(shù),使用時不再需要庫名,調(diào)用庫中函數(shù)的格式為:

<函數(shù)名>([<函數(shù)參數(shù)>])3)from<庫名>import<函數(shù)名>as<別名>

如果要導入的函數(shù)的名稱可能與程序中現(xiàn)有的名稱沖突,或者函數(shù)的名稱太長,可用as指定簡短而獨一無二的別名,這樣在程序中就可以用別名來代替函數(shù)名調(diào)用函數(shù)了。

10.3.1connect函數(shù)

在Python程序中訪問數(shù)據(jù)庫是通過Python的DB-API進行的,DB-API為不同的關系數(shù)據(jù)庫提供了一致性的接口,使得不同數(shù)據(jù)庫間的代碼移植變得更為簡單。為SQLServer、MySQL、MongoDB提供DB-API接口的第三方庫分別是pymssql、PyMySQL、pymongo。

調(diào)用connect函數(shù)的常用格式為:

pymssql.connect(server,user,password,database)

連接成功,則返回連接對象(ConnectionObject)主機名,本地可以使用“”(在不聯(lián)網(wǎng)的狀態(tài)下也可使用,但是“.”只能在聯(lián)網(wǎng)狀態(tài)下使用)為了能夠成功連接SQLServer服務器,該服務器版本應當是Developer版或Enterprise版,而不能是Express版在調(diào)用connect函數(shù)之前,應當首先在SQLServer配置管理器中啟用TCP/IP協(xié)議,并確認其TCP端口號為1433。

10.3.2Connection對象Connection對象沒有數(shù)據(jù)屬性,但定義了5個方法。(1)cursor()方法用于創(chuàng)建一個游標對象(CursorObject)。(2)commit()方法提交當前事務。如果數(shù)據(jù)庫不支持事務,或者創(chuàng)建的連接對象啟用了自動提交功能,則不能使用該方法。(3)rollback()方法回滾當前事務。(4)autocommit(status)方法將根據(jù)參數(shù)status的值(True或False)啟用或者關閉自動提交功能。默認處于關閉狀態(tài)。(5)close()方法用于關閉當前連接。

10.3.3Cursor對象

Cursor對象有4個數(shù)據(jù)屬性(1)connection是創(chuàng)建此游標的連接對象。(2)lastrowid是最近一次所插入行的ID值。(3)rowcount是最近一次操作所影響的行數(shù)。(4)rownumber是當前結(jié)果集中游標的索引(從0開始)。定義了11個方法,主要有以下6個(1)execute(operation[,params])方法:operation指定SQL語句,params為占位符。(2)executemany(operation,params_seq)方法:重復執(zhí)行params_seq(常常是列表類型)中的每一個元素。(3)fetchone()方法:獲取查詢結(jié)果集中的下一行。(4)fetchmany(size=None)方法:獲取查詢結(jié)果集中的下size行,并返回一個由元組組成的列表。(5)fetchall()方法:獲取查詢結(jié)果集中余下的所有行。(6)close()方法:關閉當前游標。

10.3.4Python訪問數(shù)據(jù)庫的主要步驟使用pymssql訪問SQLServer數(shù)據(jù)庫的步驟如下:(1)用connect函數(shù)創(chuàng)建數(shù)據(jù)庫連接,返回連接對象conn;(2)用連接對象conn的cursor方法創(chuàng)建游標,返回游標對象cur;(3)用游標對象cur的execute、executemany、fetchone、fetchmany、fetchall等方法操作數(shù)據(jù)庫;(4)用連接對象conn的commit方法提交(3)中所做的操作(如果(3)中做的僅僅是查詢操作,或者連接對象的自動提交功能處于開啟狀態(tài),可以省略本步);(5)用連接對象conn的close方法關閉連接。例10.7

使用pymssql訪問SQLServer數(shù)據(jù)庫示例。程序見教材

10.4.1GUI編程概述1.GUI庫介紹(1)Tkinter內(nèi)置在Python的安裝包中,是綁定了Python的TkGUI工具集。Tkinter是輕量級跨平臺的,且足夠易用,但它提供的控件有限。(2)wxPython是跨平臺的GUI工具集wxWidgets(用C++編寫)的Python封裝,是一套優(yōu)秀的GUI圖形庫。(3)PyGTK是GUI庫GTK的Python封裝庫,但在Windows平臺上似乎表現(xiàn)不太好。(4)PyQt是基于專業(yè)級跨平臺GUI工具集Qt(用C++編寫)的Python封裝庫,每一個PyQt控件都有其對應的Qt控件。PyQt有620多個類和約6000個函數(shù)或者方法,其功能非常強大。用PyQt開發(fā)的界面效果與用Qt開發(fā)的界面效果相同,其跨平臺的支持性很好。下面所講的PyQt5就是Qtv5的Python封裝庫。

10.4.1GUI編程概述2.窗口和控件在GUI編程中,窗口包含組成GUI的各種圖形化元素(如文本框、單選框、命令按鈕等),這些元素稱為控件或組件(Widget)??丶梢元毩⒋嬖?,也可以作為容器存在。使用容器控件的目的是將容器控件中的控件歸為一類,以有別于其他控件。在PyQt5中,QMainWindow、QWidget和QDialog三個類都可以用來創(chuàng)建窗口,可以直接使用,也可以繼承后再使用。(1)QMainWindow窗口可以包含菜單欄、工具欄、狀態(tài)欄、標題欄等,是最常見的窗口形式,也可以說是GUI程序的主窗口。(2)QDialog是對話框窗口的基類。它可以是模態(tài)的,也可以是非模態(tài)的。QDialog窗口沒有菜單欄、工具欄、狀態(tài)欄等。(3)有可能作為頂層窗口,也有可能嵌入到其他窗口中,那么就使用QWidget類。

10.4.1GUI編程概述3.布局管理布局管理一般可以通過GUI制作工具或者純代碼編寫兩種方式來完成。在前面介紹的4種GUI庫中,只有PyQt有一個稱為Qt設計師(QtDesigner)的可視化GUI設計工具。PyQt5使用統(tǒng)一的坐標系統(tǒng)來定位控件的位置和大小。屏幕的左上角為坐標系統(tǒng)的原點,屏幕的坐標系統(tǒng)是用來定位頂層窗口的。而在窗口內(nèi)部也有自己的坐標系統(tǒng),窗口的坐標系統(tǒng)是用來定位控件的。對使用PyQt5所開發(fā)的界面用純代碼進行布局管理主要有兩種方法,即絕對位置布局和布局類布局。絕對位置布局就是通過用setGeometry(x,y,width,height)方法來實現(xiàn)的。

10.4.1GUI編程概述3.布局管理絕對位置布局有如下幾個缺點:(1)如果改變一個窗口的大小,窗口中控件的大小和位置不會隨之改變;(2)所生成的窗口在不同的平臺下看起來可能不一樣;(3)在程序中改變字體時可能會破壞布局;(4)如果修改布局,如新增一個控件,就必須全部重新布局,既煩瑣又費時。在PyQt5中用布局類布局有4種布局方式,4種布局方式對應4個布局類。(1)水平布局類(QHBoxLayout)可把所添加的控件在水平方向上依次排列;(2)垂直布局類(QVBoxLayout)可把所添加的控件在垂直方向上依次排列;(3)網(wǎng)格布局類(QGridLayout)可把所添加的控件以網(wǎng)格的形式排列;(4)表單布局類(QFormLayout)可把所添加的控件以兩列的形式排列。在窗口中進行單一的布局并不難,但若要進行比較復雜的布局,如布局的嵌套,推薦使用QtDesigner可視化管理工具來進行界面布局。

10.4.1GUI編程概述4.事件驅(qū)動處理在Qt編程中,采用“信號-槽”機制來實現(xiàn)事件驅(qū)動處理,簡單地說,信號(Signal)就是事件,槽(Slot)就是事件的處理程序。在創(chuàng)建事件循環(huán)之后,當信號發(fā)射時,連接的槽函數(shù)將會自動執(zhí)行。在PyQt5中,信號和槽通過sender.signal.connect(receiver.slot)連接,其中sender是發(fā)送信號的對象,signal是信號名稱,receiver是接受信號的對象,slot是信號綁定的方法(即槽函數(shù))。所有從QObject類或其子類(如QWidget)派生出的類都能夠包含信號和槽。信號與槽是多對多的關系,一個信號甚至還可以觸發(fā)其他信號。在PyQt5編程時,用戶可以使用預先定義好的信號(內(nèi)置信號)和槽函數(shù)(內(nèi)置槽函數(shù)),也可以自定義信號和槽函數(shù)。

10.4.2PyQt5中應用程序的創(chuàng)建PyQt5庫中QtWidgets模塊是PyQt5界面設計中最常用的模塊,它包含了一系列UI元素,用于創(chuàng)建典型的桌面風格用戶界面。其他的模塊還有49個(5.11.1版本)。使用PyQt5庫創(chuàng)建一個GUI程序的基本步驟如下:

(1)導入PyQt5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論