最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python_腳本CGI、特點、應(yīng)用、開發(fā)環(huán)境(詳解)

 更新時間:2017年05月23日 09:26:51   投稿:jingxian  
下面小編就為大家?guī)硪黄赑ython_腳本CGI、特點、應(yīng)用、開發(fā)環(huán)境(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

CGI

CGI 目前由NCSA維護(hù),NCSA定義CGI如下:

CGI(Common Gateway Interface),通用網(wǎng)關(guān)接口,它是一段程序,運(yùn)行在服務(wù)器上如:HTTP服務(wù)器,提供同客戶端HTML頁面的接口。

CGI程序可以是Python腳本、Perl腳本、Shell腳本、C或者C++程序等。

服務(wù)器

在你進(jìn)行CGI編程前,確保您的Web服務(wù)器支持CGI及已經(jīng)配置了CGI的處理程序。

所有的HTTP服務(wù)器執(zhí)行CGI程序都保存在一個預(yù)先配置的目錄。這個目錄被稱為CGI目錄,并按照慣例,它被命名為/var/www/cgi-bin目錄。

CGI文件的擴(kuò)展名為.cgi,python也可以使用.py擴(kuò)展名。

默認(rèn)情況下,Linux服務(wù)器配置運(yùn)行的cgi-bin目錄中為/var/www。

如果想指定的其他運(yùn)行CGI腳本的目錄,可以修改httpd.conf配置文件,如下所示:

<Directory"/var/www/cgi-bin">
Allow Override None
Options ExecCGI

Order allow,deny

Allow from all
</Directory>
<Directory"/var/www/cgi-bin">
Options All
</Directory>

程序

使用Python創(chuàng)建第一個CGI程序,文件名為hello.py,文件位于/var/www/cgi-bin目錄中,內(nèi)容如下,修改文件的權(quán)限為755:

#!/usr/bin/env python
print("Content-type:text/html\r\n\r\n")

print("</html>") print("<html>")

print("<head>")
print("")
print("</head>")
print("<body>")

print("<h2>Hello World! This is my first CGI program")

print("</body>")
print("</html>")

以上程序在瀏覽器訪問顯示結(jié)果如下:

1、 Hello World! This is my first CGI program

這個的hello.py腳本是一個簡單的Python腳本,腳本第一的輸出內(nèi)容"Content-type:text/html\r\n\r\n"發(fā)送到瀏覽器并告知瀏覽器顯示的內(nèi)容類型為"text/html"。

環(huán)境變量

所有的CGI程序都接收以下的環(huán)境變量,這些變量在CGI程序中發(fā)揮了重要的作用:

以下是一個簡單的CGI腳本輸出CGI的環(huán)境變量:

#!/usr/bin/python
import os
print"Content-type:text/html\r\n\r\n"
print"Environment"
for param in os.environ.keys():
print"%20s:%s<\br>" %(param,os.environ[param])

特點

優(yōu)點

簡單:Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。

易學(xué):Python極其容易上手,因為Python有極其簡單的說明文檔 。

速度快:Python 的底層是用 C 語言寫的,很多標(biāo)準(zhǔn)庫和第三方庫也都是用 C 寫的,運(yùn)行速度非???。

免費(fèi)、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。FLOSS是基于一個團(tuán)體分享知識的概念。

高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。

可移植性:由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux開發(fā)的android平臺。

解釋性:一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉(zhuǎn)換到一個你的計算機(jī)使用的語言(二進(jìn)制代碼,即0和1)。這個過程通過編譯器和不同的標(biāo)記、選項完成。

運(yùn)行程序的時候,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復(fù)制到內(nèi)存中并且運(yùn)行。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼運(yùn)行 程序。

在計算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計算機(jī)使用的機(jī)器語言并運(yùn)行。這使得使用Python更加簡單。也使得Python程序更加易于移植。

面向?qū)ο螅?/strong>Python既支持面向過程的編程也支持面向?qū)ο蟮木幊?。在“面向過程”的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在“面向?qū)ο蟆钡恼Z言中,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的。

可擴(kuò)展性:如果需要一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,可以部分程序用C或C++編寫,然后在Python程序中使用它們。

可嵌入性:可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。

豐富的庫:Python標(biāo)準(zhǔn)庫確實很龐大。它可以幫助處理各種工作,包括正則表達(dá)式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關(guān)的操作。這被稱作Python的“功能齊全”理念。除了標(biāo)準(zhǔn)庫以外,還有許多其他高質(zhì)量的庫,如wxPython、Twisted和Python圖像庫等等。

規(guī)范的代碼:Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。

缺點

單行語句和命令行輸出問題:很多時候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,可以較為方便的在shell下完成簡單程序,不需要如Python一樣,必須將程序?qū)懭胍粋€.py文件。

獨特的語法

這也許不應(yīng)該被稱為局限,但是它用縮進(jìn)來區(qū)分語句關(guān)系的方式還是給很多初學(xué)者帶來了困惑。即便是很有經(jīng)驗的Python程序員,也可能陷入陷阱當(dāng)中。最常見的情況是tab和空格的混用會導(dǎo)致錯誤,而這是用肉眼無法分別的。

運(yùn)行速度慢:這里是指與C和C++相比。

應(yīng)用

系統(tǒng)編程:提供API(Application Programming Interface應(yīng)用程序編程接口),能方便進(jìn)行系統(tǒng)維護(hù)和管理,Linux下標(biāo)志性語言之一,是很多系統(tǒng)管理員理想的編程工具 。

圖形處理:有PIL、Tkinter等圖形庫支持,能方便進(jìn)行圖形處理。

數(shù)學(xué)處理:NumPy擴(kuò)展提供大量與許多標(biāo)準(zhǔn)數(shù)學(xué)庫的接口。

文本處理:python提供的re模塊能支持正則表達(dá)式,還提供SGML,XML分析模塊,許多程序員利用python進(jìn)行XML程序的開發(fā)。

數(shù)據(jù)庫編程:程序員可通過遵循Python DB-API(數(shù)據(jù)庫應(yīng)用程序編程接口)規(guī)范的模塊與Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等數(shù)據(jù)庫通信。python自帶有一個Gadfly模塊,提供了一個完整的SQL環(huán)境。

網(wǎng)絡(luò)編程:提供豐富的模塊支持sockets編程,能方便快速地開發(fā)分布式應(yīng)用程序。很多大規(guī)模軟件開發(fā)計劃例如Zope,Mnet 及BitTorrent. Google都在廣泛地使用它。

Web編程:應(yīng)用的開發(fā)語言,支持最新的XML技術(shù)。

多媒體應(yīng)用:Python的PyOpenGL模塊封裝了“OpenGL應(yīng)用程序編程接口”,能進(jìn)行二維和三維圖像處理。PyGame模塊可用于編寫游戲軟件。

pymo引擎:PYMO全稱為python memories off,是一款運(yùn)行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系統(tǒng)上的AVG游戲引擎。因其基于python2.0平臺開發(fā),并且適用于創(chuàng)建秋之回憶(memories off)風(fēng)格的AVG游戲,故命名為PYMO。

黑客編程:python有一個hack的庫,內(nèi)置了你熟悉的或不熟悉的函數(shù),但是缺少成就感。

用Python寫簡單爬蟲

首先,要通過urllib2這個Module獲得對應(yīng)的HTML源碼。

1,import urllib2 #調(diào)用urllib2

2,url='http://www.baidu.com/s?wd=cloga' #把等號右邊的網(wǎng)址賦值給url

3,html=urllib2.urlopen(url).read() #html隨意取名 等號后面的動作是打開源代碼頁面,并閱讀

4,print html #打印

可以看到url的信息存儲在span標(biāo)簽中,要獲取其中的信息可以用正則式。

開發(fā)環(huán)境

●IDLE:Python內(nèi)置IDE (隨python安裝包提供)

●PyCharm :詳見百度百科PyCharm,由著名的JetBrains公司開發(fā),帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工 具,比如調(diào)試、語法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用于支持Django框架下的專業(yè)Web開發(fā)。

●Komodo和Komodo Edit:后者是前者的免費(fèi)精簡版

●Spyder:安裝Anaconda自帶的高級IDE

●PythonWin:ActivePython或pywin32均提供該IDE,僅適用于Windows

●SPE(Stani's Python Editor):功能較多的自由軟件,基于wxPython

●Ulipad:功能較全的自由軟件,基于wxPython;作者是中國Python高手limodou

●WingIDE:可能是功能最全的IDE,但不是自由軟件(教育用戶和開源用戶可以申請免費(fèi)key)

●Eric:基于PyQt的自由軟件,功能強(qiáng)大。全名是:The Eric Python IDE

●DrPython

●PyScripter:使用Delphi開發(fā)的輕量級的開源Python IDE, 支持Python2.6和3.0。

●PyPE:一個開源的跨平臺的PythonIDE。

●bpython: 類Unix操作系統(tǒng)下使用curses庫開發(fā)的輕量級的Python解釋器。語法提示功能。

●eclipse + pydev插件:方便調(diào)試程序

●emacs:自帶python支持,自動補(bǔ)全、refactor等功能需要插件支持

●Vim: 最新7.3版編譯時可以加入python支持,提供python代碼自動提示支持

●Visual Studio 2003 + VisualPython:僅適用Windows,已停止維護(hù),功能較差

●SlickEdit

●Visual Studio 2010 + Python Tools for Visual Studio

●TextMate

●Netbeans IDE

●Sublime

●ipython

另外,諸如Notepad++、EditPlus、UltraEdit等通用的程序員文本編輯器軟件也能對Python代碼編輯提供一定的支持,比如代碼自動著色、注釋快捷鍵等,但是否夠得上集成開發(fā)環(huán)境的水平,尚有待評估。

以上這篇基于Python_腳本CGI、特點、應(yīng)用、開發(fā)環(huán)境(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python爬蟲破解字體加密案例詳解

    python爬蟲破解字體加密案例詳解

    這篇文章主要介紹了python爬蟲破解字體加密案例詳解,本文通過圖文實例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 實用自動化運(yùn)維Python腳本分享

    實用自動化運(yùn)維Python腳本分享

    今天小編就為大家分享一篇實用自動化運(yùn)維Python腳本。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python函數(shù)定義和調(diào)用過程詳解

    python函數(shù)定義和調(diào)用過程詳解

    這篇文章主要介紹了python函數(shù)定義和調(diào)用過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • pycharm安裝圖文教程

    pycharm安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了pycharm安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Python程序運(yùn)行原理圖文解析

    Python程序運(yùn)行原理圖文解析

    這篇文章主要介紹了Python程序運(yùn)行原理圖文解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Python使用Flask Migrate模塊遷移數(shù)據(jù)庫

    Python使用Flask Migrate模塊遷移數(shù)據(jù)庫

    Flask-Migrate是一個為Flask應(yīng)用處理SQLAlchemy數(shù)據(jù)庫遷移的擴(kuò)展,使得可以通過Flask的命令行接口或者Flask-Scripts對數(shù)據(jù)庫進(jìn)行操作
    2022-07-07
  • Python數(shù)據(jù)結(jié)構(gòu)與算法之算法分析詳解

    Python數(shù)據(jù)結(jié)構(gòu)與算法之算法分析詳解

    算法分析的主要目標(biāo)是從運(yùn)行時間和內(nèi)存空間消耗等方面比較算法。本文將為大家詳細(xì)介紹Python數(shù)據(jù)結(jié)構(gòu)與算法中的算法分析,需要的可以參考一下
    2021-12-12
  • Python實現(xiàn)的微信好友數(shù)據(jù)分析功能示例

    Python實現(xiàn)的微信好友數(shù)據(jù)分析功能示例

    這篇文章主要介紹了Python實現(xiàn)的微信好友數(shù)據(jù)分析功能,結(jié)合實例形式分析了Python使用itchat、pandas、pyecharts等模塊針對微信好友數(shù)據(jù)進(jìn)行統(tǒng)計與計算相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • Python實現(xiàn)定制自動化業(yè)務(wù)流量報表周報功能【XlsxWriter模塊】

    Python實現(xiàn)定制自動化業(yè)務(wù)流量報表周報功能【XlsxWriter模塊】

    這篇文章主要介紹了Python實現(xiàn)定制自動化業(yè)務(wù)流量報表周報功能,結(jié)合實例形式分析了Python基于XlsxWriter模塊操作xlsx文件生成報表圖的相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • python 元組的使用方法

    python 元組的使用方法

    這篇文章主要介紹了python 元組的使用方法,文中講解非常細(xì)致,代碼幫助大家更好的參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06

最新評論

沙坪坝区| 香格里拉县| 盐源县| 石城县| 大宁县| 靖州| 鲁甸县| 大悟县| 来安县| 迁西县| 深水埗区| 普格县| 班玛县| 壤塘县| 鹤庆县| 景德镇市| 武鸣县| 阜康市| 明溪县| 乐都县| 仙居县| 夏邑县| 区。| 葫芦岛市| 耿马| 石台县| 云浮市| 原阳县| 越西县| 邹平县| 齐河县| 岑溪市| 乡城县| 白河县| 西贡区| 大余县| 泗阳县| 海阳市| 福清市| 迭部县| 灌南县|