欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用IPython下的Net-SNMP來(lái)管理類UNIX系統(tǒng)的教程

 更新時(shí)間:2015年04月15日 10:35:39   投稿:goldensun  
這篇文章主要介紹了使用IPython下的Net-SNMP來(lái)管理類UNIX系統(tǒng)的教程,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下

引言

對(duì)于簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議 (SNMP),大多數(shù)系統(tǒng)管理員都具有一定的使用經(jīng)驗(yàn),或者至少聽(tīng)說(shuō)過(guò)它。如果您正在一個(gè)數(shù)據(jù)中心工作,那么您每天都可能采用某種方式與 SNMP 進(jìn)行交互。有許多給人印象深刻的、同等規(guī)模的網(wǎng)絡(luò)管理系統(tǒng) (NMS) 或者網(wǎng)絡(luò)監(jiān)視系統(tǒng)使用了 SNMP 監(jiān)視,但本文并不打算介紹這些系統(tǒng)。本文主要涉及的是通過(guò) Python? 語(yǔ)言來(lái)研究 SNMP,并親自編寫(xiě)相關(guān)的代碼。

一位朋友最近告訴我,有時(shí)候遇到的情況就像:只是希望沿著街道一路走到奶奶家,而不需要乘坐像 Saturn V 火箭一樣飛快。有許多任務(wù),如果利用或者配置大規(guī)模的 NMS,就好像是一個(gè) Saturn V 火箭,在填滿液氧罐之前,先嘗試一下使用 Python,那么您將得到更好的服務(wù)。了解如何編寫(xiě)靈活的 Python 代碼與 SNMP 進(jìn)行交互,這可能是系統(tǒng)管理員可以獲得的、最有趣且最高效的技能之一。盡管 SNMP 的設(shè)置和使用非常復(fù)雜,但本文中所討論的內(nèi)容將使它變得非常有趣。
安裝和配置 Net-SNMP

要學(xué)習(xí)本文中的內(nèi)容,您需要在您的 *nix 計(jì)算機(jī)中安裝最新的 Python(即 Python 2.3 或者更高版本)。在撰寫(xiě)本文時(shí),Python 2.5.1 是 Python 的最新版本。您還需要 IPython,以便以交互的方式使用帶 Python 綁定的 Net-SNMP 庫(kù)。Net-SNMP 團(tuán)隊(duì)對(duì)各種操作系統(tǒng)中的支持進(jìn)行了詳細(xì)測(cè)試,具體包括 AIX?、HP-UX?、GNU/Linux? 分發(fā)版(如 Red Hat)、Windows?,甚至 OS X?。

安裝 IPython 是一項(xiàng)非常簡(jiǎn)單的工作。一個(gè)很好的選擇是使用 Easy Install 來(lái)管理 Python 包。通過(guò)運(yùn)行 ez_setup.py 腳本,您可以很容易地安裝任何 Python 包。例如,您只需要鍵入以下命令:

easy_install ipython

其他可選的安裝方式包括,使用您最喜歡的包管理系統(tǒng)、或者只需下載 IPython 并鍵入以下命令:

python setup.py install

請(qǐng)注意,干線 (trunk) 指的是版本控制系統(tǒng)中的根路徑,其中保存了最近的代碼副本。此外,干線還常常表示一個(gè)子版本和版本控制系統(tǒng)。有關(guān)更詳細(xì)的內(nèi)容,請(qǐng)參見(jiàn)參考資料部分中的子版本鏈接。

要學(xué)習(xí)本文中的內(nèi)容,您需要確保您的客戶端計(jì)算機(jī)、或者運(yùn)行所有代碼的計(jì)算機(jī)都安裝了 NET-SNMP Version 5.4.x 或者更高版本,因?yàn)閺倪@個(gè)源代碼版本開(kāi)始,包括了 Python 綁定。在大多數(shù)情況下,綁定的安裝需要對(duì)源文件進(jìn)行編譯;然而,也可以使用 Red Hat Package Managers (RPM)。如果你有興趣和時(shí)間,那么可以從 Net-SNMP Web 站點(diǎn)查看一下它的最新版本。

有許多編譯選項(xiàng)可供使用,但主要的任務(wù)是對(duì) NET-SNMP 進(jìn)行正確編譯,然后運(yùn)行 Python 目錄中的、獨(dú)立的 Python 安裝程序。另一個(gè)需要注意的問(wèn)題是,當(dāng)您進(jìn)行編譯并運(yùn)行 ./configure 的時(shí)候,它將運(yùn)行本地計(jì)算機(jī)(正在編譯代理的計(jì)算機(jī))的配置腳本。您不應(yīng)該使用該配置腳本,對(duì)于本文而言,您只需要?jiǎng)?chuàng)建一個(gè)簡(jiǎn)單的配置腳本。

對(duì) /etc/snmp/snmpd.conf 中所存儲(chǔ)的配置文件進(jìn)行備份,并構(gòu)建下面這個(gè)非?;镜呐渲茫?/p>

syslocation "My Local Machine"
syscontact me@localhost.com
rocommunity public

保存它,并重新啟動(dòng) snmpd 守護(hù)進(jìn)程。在大多數(shù) *nix 系統(tǒng)中,可以使用 /etc/init.d/snmpd restart 來(lái)完成這項(xiàng)工作。

除非在不得已的情況下,否則最好不要對(duì)處于活動(dòng)開(kāi)發(fā)階段的版本進(jìn)行編譯,因?yàn)檫@樣做,您將需要自己動(dòng)手修復(fù)有問(wèn)題的代碼。在 CentOS 5 或者 Red Hat Enterprise Linux 5 (RHEL 5) 中,您可以下載最新的、穩(wěn)定的源文件 RPM(在撰寫(xiě)本文之時(shí),是 5.4.1 版本)。請(qǐng)注意,您還需要使用 Python 源文件來(lái)構(gòu)建綁定。因此,如果您正在使用一臺(tái)基于 Red Hat 的計(jì)算機(jī),那么請(qǐng)確保為特定的 *nix 操作系統(tǒng)安裝了 python-dev(或者其等價(jià)物)和 Python Header 文件。如果您在從源文件構(gòu)建 RPM 的過(guò)程中,需要任何幫助的話,請(qǐng)參考官方的 Red Hat 文檔。從源文件構(gòu)建包可能是一個(gè)非常復(fù)雜的主題,并且已經(jīng)超出了本文的范圍。如果您在使用 Python 綁定的時(shí)候遇到了麻煩,那么您應(yīng)該在 Net-SNMP 郵件列表中請(qǐng)求幫助。
對(duì)代碼進(jìn)行分析

還等什么呢?假設(shè)您已經(jīng)安裝了 Python 綁定和 IPython?,F(xiàn)在,您已經(jīng)做好了使用 IPython 的準(zhǔn)備,并開(kāi)始相關(guān)的工作。盡管在某些時(shí)候,您可能還需要瀏覽 IPython 文檔。Jeff Rush 是當(dāng)前的 Python Advocacy Coordinator,他為 IPython 提供了一些非常好的屏幕錄像內(nèi)容。好的,讓我們開(kāi)始進(jìn)行編碼。

讓我們進(jìn)行一次簡(jiǎn)單的查詢,以便通過(guò)使用計(jì)算機(jī)的對(duì)象標(biāo)識(shí)符 (OID) 值 sysDescr 來(lái)標(biāo)識(shí)一臺(tái)計(jì)算機(jī)。通過(guò)鍵入 ipython 啟動(dòng) IPython,然后執(zhí)行這個(gè)交互式會(huì)話:
清單 1. IPython 示例

       

 In [1]: import netsnmp

    In [2]: oid = netsnmp.Varbind('sysDescr')

    In [3]: result = netsnmp.snmpwalk(oid,
    ...:             Version = 2,
    ...:             DestHost="localhost",
    ...:             Community="public")

    In [4]: result = netsnmp.snmpwalk(oid,
                Version = 2,
                DestHost="localhost",
                Community="public")

    In [16]: result
    Out[16]: ('Linux localhost 2.6.18-8.1.14.el5 #1 SMP Thu Sep 27 
    18:58:54 EDT 2007 i686',)

請(qǐng)注意,您所得到的 result 值與這里所顯示的 result 值是不同的。如果您已經(jīng)遵循了上面清單 1 中所顯示的配置,那么所有其他的內(nèi)容都應(yīng)該是可用的。如果您對(duì) SNMP 比較熟悉,那么您可能馬上就能夠明白這些內(nèi)容的實(shí)際作用。

使用 IPython 來(lái)測(cè)試 SNMP 代碼片段的好處之一是,它就好像是一個(gè)普通的 Shell,并且許多基本的、交互式 Shell 的概念“都可以起作用”,但需要說(shuō)明的是,它們是以 python 方式進(jìn)行工作的。編寫(xiě) SNMP 代碼可能是一項(xiàng)非常單調(diào)乏味的活動(dòng),但是通過(guò) IPython 來(lái)使用 Net-SNMP 庫(kù)將使其變得非常有趣。

正如您所看到的,要將結(jié)果轉(zhuǎn)換為 Python 數(shù)據(jù)類型,這項(xiàng)任務(wù)是非常簡(jiǎn)單的。這就是為什么 IPython 和 Net-SNMP 可以很好地在一起工作的原因?,F(xiàn)在,對(duì)于編寫(xiě)自定義腳本來(lái)說(shuō),只需要以交互方式分析 OID 的組合以進(jìn)行查詢。在理想的情況下,需要運(yùn)行一個(gè)大規(guī)模的、易于配置的 NMS 設(shè)置腳本,自動(dòng)地將新的計(jì)算機(jī)集成到網(wǎng)絡(luò)中。

當(dāng)然,并不存在這種理想的情況,您需要了解如何將一些好的 SNMP 代碼組合到一起,對(duì)于一名系統(tǒng)管理員來(lái)說(shuō),這是非常有用的。下面給出一個(gè)示例情況,假設(shè)您剛剛將一個(gè)高速 DDR 轉(zhuǎn)換為正在運(yùn)行 Ubuntu Linux 的 2 TB RAID 0 服務(wù)器,因?yàn)槟仨氃谝粋€(gè)小時(shí)的時(shí)間內(nèi)解決問(wèn)題,所以您不得不這樣做。

現(xiàn)在,您遇到了很大的麻煩,并且您只有幾分鐘的時(shí)間來(lái)監(jiān)視具體的問(wèn)題,以了解是否需要開(kāi)始發(fā)送簡(jiǎn)歷、或者是否應(yīng)該開(kāi)始準(zhǔn)備講話并請(qǐng)求升職。讓我們使用 IPython 中的編輯功能來(lái)編寫(xiě)腳本,并將它保存到文件中,然后在不離開(kāi) IPython 的情況下,在一個(gè)會(huì)話中運(yùn)行它: ed snmpinput.py
清單 2. IPython 模塊的創(chuàng)建

import netsnmp

class snmpSessionBaseClass(object):
  """A Base Class For a SNMP Session"""
  def __init__(self,
        oid="sysDescr",
        Version=2,
        DestHost="localhost",
        Community="public"):

    self.oid = oid
    self.Version = Version
    self.DestHost = DestHost
    self.Community = Community


  def query(self):
    """Creates SNMP query session"""
    try:
      result = netsnmp.snmpwalk(self.oid,
                  Version = self.Version,
                  DestHost = self.DestHost,
                  Community = self.Community)
    except:
      import sys
      print sys.exc_info()
      result = None

    return result

對(duì) IPython 進(jìn)行自定義以使用正確的編輯器

通過(guò)編輯 $HOME/.ipython/ipythonrc,您可以對(duì) Ipython 進(jìn)行自定義。首先需要進(jìn)行自定義的內(nèi)容之一是 %edit 命令,可以通過(guò)鍵入 ed 來(lái)調(diào)用該命令。在缺省情況下,它被設(shè)置為使用 vi,但是您可以更改它,以便使用其他編輯器,包括 Emacs。關(guān)于如何更改您的環(huán)境,本文給出了相應(yīng)的指導(dǎo)。您還可以使用下面的命令來(lái)啟動(dòng) Ipython,以便以硬編碼的形式指定使用某個(gè)特定的編輯器: ipython -editor=vim。

繼續(xù)執(zhí)行,將下面的代碼剪切并粘貼到您剛剛創(chuàng)建的文件中。當(dāng)保存這個(gè)文件時(shí),IPython 將自動(dòng)地運(yùn)行它,并將該類放置到您環(huán)境中相應(yīng)的模塊中。如果您鍵入 who,那么您將看到與以下所示類似的內(nèi)容:

In [2]: who
netsnmp snmpSessionBaseClass

這項(xiàng)操作的功能非常強(qiáng)大,因?yàn)槟梢垣@得使用您最喜歡的文本編輯器(也許是 Vim 或者 Emacs)的所有優(yōu)點(diǎn),然后在交互的 IPython Shell 會(huì)話中立即使用這些代碼。請(qǐng)注意,如果您已經(jīng)編寫(xiě)了一個(gè)模塊,那么您還可以簡(jiǎn)單地鍵入并運(yùn)行它,以獲得相同的結(jié)果。執(zhí)行和運(yùn)行 IPython 中的模塊,這就相當(dāng)于運(yùn)行其中的代碼,并將其放入到 IPython 環(huán)境中。
以迭代的方式進(jìn)行編碼

現(xiàn)在通過(guò)使用 IPython,可以將 Python Shell、UNIX Shell 和您最喜歡的文本編輯器的最佳特性組合到一起。在與像 SNMP 庫(kù)這樣非常復(fù)雜的對(duì)象進(jìn)行交互時(shí),您需要使用可以獲得的所有幫助,而在這個(gè)示例中,真正地展示了 IPython 的強(qiáng)大功能。

您可以動(dòng)態(tài)地編寫(xiě)一些模塊,并且您可以在稍后對(duì)其進(jìn)行測(cè)試和使用。IPython 可以與任何編程風(fēng)格很好地融合在一起,包括測(cè)試驅(qū)動(dòng)的開(kāi)發(fā) (TDD) 或者測(cè)試增強(qiáng)的開(kāi)發(fā) (TED)。為了證明這種便利性,讓我們轉(zhuǎn)到您剛剛編寫(xiě)的模塊。

既然已經(jīng)有一個(gè)面向?qū)ο蟮?SNMP 接口,那么您就可以開(kāi)始向本地計(jì)算機(jī)進(jìn)行詢問(wèn):
清單 3. IPython 迭代式編碼

In [1]: run snmpinput

In [2]: who
netsnmp snmpSessionBaseClass  

In [3]: s = snmpSessionBaseClass()

In [4]: s.query()
Out[4]: ('Linux localhost 2.6.18-8.1.14.el5 #1 SMP Thu Sep 27 18:58:54 EDT 2007 i686',)

In [5]: result = s.query()

In [6]: len(result)
Out[6]: 1

通過(guò)使用這個(gè)模塊獲得相關(guān)的結(jié)果,這是非常容易的,但是您基本上只是在運(yùn)行一個(gè)硬編碼腳本,因此需要更改 OID 對(duì)象的值,以遍歷系統(tǒng)子樹(shù):
清單 4. 更改 OID 對(duì)象的值

In [7]: s.oid
Out[7]: 'sysDescr'

In [8]: s.oid = ".1.3.6.1.2.1.1"

In [9]: result = s.query()

In [10]: print result
('Linux localhost 2.6.18-8.1.14.el5 #1 SMP Thu Sep 27 18:58:54 EDT 2007 i686', 
      '.1.3.6.1.4.1.8072.3.2.10', '121219', 'me@localhost.com', 
      'localhost', '"My Local 
Machine"', '0', '.1.3.6.1.6.3.10.3.1.1', '.1.3.6.1.6.3.11.3.1.1', 
'.1.3.6.1.6.3.15.2.1.1', 
'.1.3.6.1.6.3.1', '.1.3.6.1.2.1.49', '.1.3.6.1.2.1.4', '.1.3.6.1.2.1.50',
 '.1.3.6.1.6.3.16.2.2.1', 
'The SNMP Management Architecture MIB.', 'The MIB for Message Processing and
 Dispatching.', 'The management information definitions for the SNMP 
User-based Security Model.', 'The MIB module for SNMPv2 entities', 'The 
MIB module for managing TCP implementations', 'The MIB module for
managing IP and ICMP implementations', 'The MIB module for managing 
UDP implementations', 'View-based Access 
Control Model for SNMP.', '0', '0', '0', '0', '0', '0', '0', '0')

正如您可以看到的,要使用這個(gè)模塊并開(kāi)始分析整個(gè)網(wǎng)絡(luò)(一次一臺(tái)計(jì)算機(jī)),這項(xiàng)任務(wù)是非常容易的。請(qǐng)仔細(xì)地進(jìn)行分析,并確定需要在網(wǎng)絡(luò)中進(jìn)行查詢的內(nèi)容。這是 IPython 的另一個(gè)有趣的特性,有必要對(duì)其進(jìn)行深入研究。IPython 具有一個(gè)令人難以置信的特性,即允許您將 Python 代碼片段作為后臺(tái)進(jìn)程來(lái)運(yùn)行。幸運(yùn)的是,進(jìn)行這項(xiàng)操作非常簡(jiǎn)單。讓我們?cè)俅芜\(yùn)行相同的查詢,但這一次將其作為后臺(tái)進(jìn)程運(yùn)行(請(qǐng)參見(jiàn)清單 5)。
清單 5. IPython 迭代式編碼示例——后臺(tái)進(jìn)程

In [11]: bg s.query()
Starting job # 0 in a separate thread.

In [12]: jobs[0].status
Out[12]: 'Completed'

In [16]: jobs[0].result
Out[16]: 
('Linux localhost 2.6.18-8.1.14.el5 #1 SMP Thu Sep 27 18:58:54 EDT 2007 i686',
 '.1.3.6.1.4.1.8072.3.2.10', '121219', 'me@localhost.com', 'localhost', '"My Local
 Machine"', '0', '.1.3.6.1.6.3.10.3.1.1', '.1.3.6.1.6.3.11.3.1.1', 
'.1.3.6.1.6.3.15.2.1.1', '.1.3.6.1.6.3.1', '.1.3.6.1.2.1.49', 
'.1.3.6.1.2.1.4', '.1.3.6.1.2.1.50', '.1.3.6.1.6.3.16.2.2.1',
 'The SNMP Management Architecture MIB.', 'The MIB for Message Processing and
 Dispatching.', 'The management information definitions for the SNMP User-based
 Security Model.', 'The MIB module for SNMPv2 entities', 'The MIB module for
 managing TCP implementations', 'The MIB module for managing IP and ICMP
 implementations', 'The MIB module for managing UDP implementations',
 'View-based Access Control Model for SNMP.', '0', '0', '0', '0', '0', '0', '0', '0')

令人激動(dòng)的是,IPython 中的后臺(tái)線程是一種非常有價(jià)值的功能,但它只能與支持異步線程的庫(kù)一起工作。不幸的是,Net-SNMP 是同步的。如果您對(duì)這一點(diǎn)感興趣,那么可以通過(guò)將 s.oid 值更改為 .iso 來(lái)進(jìn)行測(cè)試。在查詢完成之前,您應(yīng)該可以注意到,IPython 解釋器發(fā)生了“阻塞”或者“掛起”。盡管只是一個(gè)警告,但對(duì)整個(gè) .iso 樹(shù)的 SNMP 遍歷可能會(huì)花費(fèi)較長(zhǎng)的時(shí)間,因此您可能會(huì)接受我的觀點(diǎn)。

當(dāng)然,還有另一種解決方案。您可以使用 Python 所提供的眾多處理庫(kù)中的其中一個(gè),為這個(gè)阻塞的進(jìn)程派生新的進(jìn)程。Python Cheese Shop 提供了一些第三方庫(kù)。如果您正在使用 easy_install,那么要安裝一個(gè)包(如 Parallel Python)并使用 Net-SNMP 來(lái)測(cè)試這個(gè)庫(kù),將是相當(dāng)簡(jiǎn)單的,因此這將由您來(lái)決定。

easy_install http://www.parallelpython.com/downloads/pp/pp-1.5.zip

這里要展示的最后一個(gè)特性是,在 IPython Shell 中運(yùn)行單元測(cè)試。在對(duì)模塊進(jìn)行更改時(shí),需要頻繁地運(yùn)行單元測(cè)試,而這也是非常容易的。您需要添加一個(gè)標(biāo)記以運(yùn)行 run -e,這樣一來(lái),您就可以在 IPython Shell 中避免回溯到單元測(cè)試模塊。您可以在本文所附帶的源文件中下載這個(gè)單元測(cè)試。

請(qǐng)注意,IPython 0.8.2 還有一個(gè)新的文檔測(cè)試特性,它允許您在 IPython 中生成文檔測(cè)試。文檔測(cè)試是 Python 的一個(gè)很好的特性,因?yàn)榕c其他特性一起,它提供了一種為 API 創(chuàng)建可測(cè)試文檔的方法。下面給出了一個(gè)示例,以說(shuō)明如何在 IPython 中為我們的模塊運(yùn)行 doctest:
清單 6.以 doctest 模式運(yùn)行 IPython

In [5]: %doctest_mode
*** Pasting of code with ">>>" or "..." has been enabled.
Exception reporting mode: Plain
Doctest mode is: ON
>>> from snmpinput import snmpSessionBaseClass

>>> s = snmpSessionBaseClass()

>>> s.query()
('Linux devmws2.racemi.com 2.6.9-55.0.2.EL #1 Tue Jun 26 14:08:18 EDT 2007 i686',)

因?yàn)?doctest 模式將不加分析地執(zhí)行 Python 語(yǔ)句,所以您必須小心,不要在 doctest 中使用可能更改的值,就像上面所給出的值。如果您在模塊的 docstring 中粘貼了數(shù)行代碼,那么您可以通過(guò)使用下面的方法來(lái)測(cè)試您的 API 文檔:

def _test():
  import doctest
  doctest.testmod()

if __name__ == "__main__":
  _test()

總結(jié)

在本文中,您已經(jīng)了解了協(xié)同使用 Net-SNMP 和 IPython 將成為一種功能強(qiáng)大的組合。本文介紹了下面幾個(gè)主要概念:

  •     Python 綁定:Net-SNMP 現(xiàn)在提供了 Python 綁定,這使得我們能夠充分地利用 Python 的功能來(lái)處理 SNMP 協(xié)議。
  •     處理庫(kù):目前,Python 綁定是同步的,但是使用處理庫(kù)可以為每個(gè)請(qǐng)求派生新的進(jìn)程,從而解決這個(gè)問(wèn)題。
  •     靈活的技術(shù):對(duì)于系統(tǒng)管理員和軟件工程師來(lái)說(shuō),IPython 是一種非常成熟、并且功能非常強(qiáng)大的工具。盡管本文只是簡(jiǎn)要地介紹了幾種靈活的技術(shù),如文檔測(cè)試和單元測(cè)試,但是您可以應(yīng)用這些技術(shù),以進(jìn)行任何以測(cè)試為中心的開(kāi)發(fā)、或者以交互的方式編寫(xiě)和分析代碼。
  •     SNMP 和 IPython:對(duì)于 SNMP 和 IPython 在單獨(dú)或者共同使用時(shí)能夠?qū)崿F(xiàn)的功能,本文只是進(jìn)行了簡(jiǎn)要介紹。

SNMP 非常復(fù)雜,它幾乎使人們不敢想象編寫(xiě)任何有意義的代碼,但是,我們希望本文所介紹的技術(shù)能夠激發(fā)某些新的觀點(diǎn)。如果您很好奇,想知道 SNMP 的 Python 實(shí)現(xiàn)究竟到了什么程度,那么可以研究一下 Zenoss,下載一個(gè)虛擬機(jī),并對(duì)它進(jìn)行測(cè)試。還有一個(gè) API,您可以利用它來(lái)編寫(xiě)腳本,因此您可以將這里所學(xué)到的內(nèi)容和全面的 Python NMS 相結(jié)合。當(dāng)然,也適用于任何其他 NMS。

相關(guān)文章

  • 用python求一個(gè)數(shù)組的和與平均值的實(shí)現(xiàn)方法

    用python求一個(gè)數(shù)組的和與平均值的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇用python求一個(gè)數(shù)組的和與平均值的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • PyCharm設(shè)置每行最大長(zhǎng)度限制的方法

    PyCharm設(shè)置每行最大長(zhǎng)度限制的方法

    今天小編就為大家分享一篇PyCharm設(shè)置每行最大長(zhǎng)度限制的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 詳解Python用戶登錄接口的方法

    詳解Python用戶登錄接口的方法

    這篇文章主要介紹了Python用戶登錄接口的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Python 中下劃線的幾種用法(_、_xx、xx_、__xx、__xx__)

    Python 中下劃線的幾種用法(_、_xx、xx_、__xx、__xx__)

    本文主要介紹了Python 中下劃線的幾種用法(_、_xx、xx_、__xx、__xx__),詳細(xì)的介紹了這幾種下劃線的用處,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • TensorFlow基本的常量、變量和運(yùn)算操作詳解

    TensorFlow基本的常量、變量和運(yùn)算操作詳解

    今天小編就為大家分享一篇TensorFlow基本的常量、變量和運(yùn)算操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python實(shí)操練習(xí)案例(一)

    python實(shí)操練習(xí)案例(一)

    這篇文章主要介紹了python實(shí)操練習(xí)案例,下面文章小編要給大家分享的是適合python初學(xué)者的小練習(xí),需要的小伙伴可以參考一下
    2022-02-02
  • 使用Python的web.py框架實(shí)現(xiàn)類似Django的ORM查詢的教程

    使用Python的web.py框架實(shí)現(xiàn)類似Django的ORM查詢的教程

    這篇文章主要介紹了使用Python的web.py框架實(shí)現(xiàn)類似Django的ORM查詢的教程,集成的ORM操作數(shù)據(jù)庫(kù)向來(lái)是Python最強(qiáng)大的功能之一,本文則探討如何在web.py框架上實(shí)現(xiàn),需要的朋友可以參考下
    2015-05-05
  • Python加密模塊的hashlib,hmac模塊使用解析

    Python加密模塊的hashlib,hmac模塊使用解析

    這篇文章主要介紹了Python加密模塊的hashlib,hmac模塊使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python棧實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換的示例詳解

    python棧實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換的示例詳解

    棧(Stack)是計(jì)算機(jī)科學(xué)中常用的數(shù)據(jù)結(jié)構(gòu),具有眾多實(shí)際應(yīng)用,其中之一是使用棧來(lái)實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換,將一個(gè)數(shù)字從一種進(jìn)制表示轉(zhuǎn)換為另一種進(jìn)制表示,本文將深入研究棧的原理,以及如何使用Python實(shí)現(xiàn)十進(jìn)制到二進(jìn)制、八進(jìn)制和十六進(jìn)制的進(jìn)制轉(zhuǎn)換,需要的朋友可以參考下
    2023-11-11
  • Python線程指南詳細(xì)介紹

    Python線程指南詳細(xì)介紹

    本文介紹了Python對(duì)于線程的支持,包括學(xué)會(huì)多線程編程需要掌握的基礎(chǔ)以及Python兩個(gè)線程標(biāo)準(zhǔn)庫(kù)的完整介紹及使用示例
    2017-01-01

最新評(píng)論