亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

【Python】windows下Eclipse中安裝集成webpy框架

這篇文章主要講述的是在Windows下,在eclipse中如何通過(guò)使用webpy框架進(jìn)行Python的web開發(fā)。很多文章都是在自己一次次的碰壁中又決定自己寫一篇。像原來(lái)的MySQL的安裝,每次安裝都是需要重新再搜索一遍遇到的問題如何解決。

本文分幾個(gè)部分:

第一個(gè)部分是Python的安裝,如果安裝過(guò)了的童鞋,則可以直接跳過(guò)去這一步;

第二部分是eclipse中PyDev插件的安裝,安裝之后在eclipse中就可以進(jìn)行Python的開發(fā);

第三個(gè)部分是webpy的安裝;

第四部分是MySQLdb的安裝;

第五部分是sqlalchemy的安裝;

最后則是代碼示例。

Python安裝

在Windows下無(wú)論安裝什么都是比較麻煩的,同樣包括Python。在Windows下安裝Python可以去Python官網(wǎng)下載,在這里有一個(gè)下載版本的問題。現(xiàn)在可以分為兩個(gè)大版本,即3.X之前和3.X之后。如果單純是做Python的開發(fā)(不會(huì)依賴其他第三方庫(kù)),當(dāng)然是選擇3.x之后的版本。因?yàn)镻ython的升級(jí)是不可阻擋的趨勢(shì),還不如早早選擇新版本,省的以后再版本更換的時(shí)候出現(xiàn)額外的精力;但是如果是要和其他框架又耦合,那么建議是選擇3.x之前的版本。在整個(gè)框架搭建過(guò)程中不致一次的出現(xiàn)因?yàn)榘姹静患嫒輰?dǎo)致莫名奇妙的問題出現(xiàn),花費(fèi)很長(zhǎng)的時(shí)間去定位。比如開始Python開始是3.4最新版本,但是webpy依賴的是Python2.7的版本,無(wú)法正常安裝(因?yàn)?.4和2.7之間有些語(yǔ)法不同)。

下載完之后就可以直接單擊安裝,選擇安裝目錄就好。在這里需要注意的是安裝完建議修改一下系統(tǒng)變量,這樣以后可以在cmd里直接運(yùn)行Python命令就可以了,而不是每次都需要cd到存在Python.exe的目錄下再運(yùn)行。除此之外,在安裝其他第三方庫(kù)的時(shí)候,比如webpy中會(huì)省去不少麻煩。除了上面直接下載可執(zhí)行文件的方式安裝之外,你還可以通過(guò)源碼的方式安裝,源碼方式的安裝可以通過(guò)--prefixe=filepath來(lái)指定安裝路徑。

修改系統(tǒng)路徑辦法:我的電腦->右鍵“屬性”->選擇“高級(jí)系統(tǒng)設(shè)置”->選擇“環(huán)境變量”->選擇“系統(tǒng)變量”->單擊Path屬性,把Python.exe目錄添加進(jìn)去。如下圖所示:

【Python】windows下Eclipse中安裝集成webpy框架

修改后的Path:C:\Program Files (x86)\Common Files\NetSarang;C:\Python27(注意每個(gè)路徑之間使用分號(hào)隔開)

安裝之后運(yùn)行cmd,然后直接輸入Python進(jìn)入Python輸入命令模式:

【Python】windows下Eclipse中安裝集成webpy框架

eclipse安裝Python插件

當(dāng)Python安裝完成之后,還需要eclipse支持Python的開發(fā)。這時(shí)候需要eclipse中添加pydev的插件。打開eclipse然后具體步驟如下:

help->install new software->在彈出的窗口中單擊add->在彈出的窗口中輸入下面截圖內(nèi)容

【Python】windows下Eclipse中安裝集成webpy框架

單擊OK等待加載出的內(nèi)容,在加載出的內(nèi)容中選擇pydev安裝包,然后點(diǎn)擊next開始安裝,安裝過(guò)程中詢問關(guān)于權(quán)限相關(guān)內(nèi)容直接選擇同意。安裝成功之后,eclipse選擇重啟。重啟之后可以在Window->preference中看到PyDev的選項(xiàng),下一步的工作就是為PyDev選擇Python解釋器。在eclipse中安裝解釋器的步驟如下:

Window->preference->PyDev->Interpreters->Python Intepreter,具體如下圖所示:

【Python】windows下Eclipse中安裝集成webpy框架

在出現(xiàn)的窗口中單擊new,在彈出的窗口中選擇你安裝Python的目錄中含有Python.exe目錄,單擊OK則開始加載Python下的包。如下圖所示:

【Python】windows下Eclipse中安裝集成webpy框架

這個(gè)時(shí)候,eclipse就可以進(jìn)行Python的開發(fā)了。其實(shí)上述不要忘記Python interpreter的設(shè)置,其他正常情況下都不會(huì)出現(xiàn)問題的。經(jīng)過(guò)上述步驟之后,在eclipse中新建項(xiàng)目就可以看到PyDev Project選項(xiàng)。按照正常的新建源代碼,以Python的方式運(yùn)行,整個(gè)過(guò)程結(jié)束。

webpy安裝

webpy是一個(gè)小型的以Python開發(fā)的基于MTC(Model-Templates-Control)方式開發(fā)的一個(gè)框架,相比較與Django,它體積是非常小。在功能上沒有Django強(qiáng)大。webpy可以與apache一起結(jié)合使用,提高其性能,詳情可以查看webpy與apache的設(shè)置。

安裝webpy可以去webpy官網(wǎng)下載,下載下來(lái)直接解壓到某個(gè)目錄即可。在這里選擇解壓到Python安裝目錄下面,解壓后的webpy的目錄如下圖所示:

【Python】windows下Eclipse中安裝集成webpy框架

然后通過(guò)Python setup.py install安裝。一般Python中安裝第三方庫(kù)都是通過(guò)setup.py安裝,或者easy_install等方式。不同方式也沒有無(wú)所謂的優(yōu)劣之分,純碎是個(gè)人習(xí)慣和環(huán)境了。

在安裝的時(shí)候,有可能會(huì)報(bào)出如下錯(cuò)誤?import error model utils not exist等類似錯(cuò)誤。具體錯(cuò)誤原因是因?yàn)樯鲜雒顣?huì)執(zhí)行web文件夾下的__init__.py文件,其源碼文件如下所示:

【Python】windows下Eclipse中安裝集成webpy框架

可以看住該文件會(huì)加載標(biāo)準(zhǔn)庫(kù)和web文件夾下的各種py文件執(zhí)行一遍生成pyc文件以便以后可以主動(dòng)執(zhí)行。但是__init__.py在加載其他文件的時(shí)候,因?yàn)槠渌募牟辉诋?dāng)前Python的目錄下,可以通過(guò)import sys,然后打印sys.path,看一下當(dāng)前Python目錄。解決辦法是把當(dāng)前的位置添加進(jìn)sys.path,即在__init__.py源碼文件中添加下面一句代碼:

【Python】windows下Eclipse中安裝集成webpy框架

sys.path.append(yourpath)#yourpath則是你webpy所在的目錄。

添加完這兩句代碼再次執(zhí)行,就可以安裝成功了。如果不添加上面的代碼,你也可以通過(guò)修改Path路徑在完成安裝的。另外,如果上面你安裝了Python而且也修改了Path路徑,那么這個(gè)問題就不會(huì)出現(xiàn)。

MySQLdb的安裝

web開發(fā)中數(shù)據(jù)庫(kù)是不可缺少的,對(duì)于MySQL來(lái)說(shuō),Python有MySQLdb的支持。MySQLdb是Python與mysql之間進(jìn)行連接的一個(gè)庫(kù),就像Java與其他數(shù)據(jù)庫(kù)直接使用JDBC一樣。MySQLdb可以直接通過(guò)下載msi格式的安裝包直接安裝,下載地址:http://sourceforge.net/projects/mysql-Python/

在使用安裝包安裝的時(shí)候需要注意,你這個(gè)時(shí)候必須設(shè)定了Path路徑,否則安裝包在安裝的時(shí)候是無(wú)法找到Python的執(zhí)行路徑的。因?yàn)槭蔷幾g好的安裝包,你又無(wú)法修改源代碼,所以是無(wú)法安裝成功的。除此之外需要注意的是Python與MySQLdb之間的版本問題也需要一個(gè)同意。這是我搭建整個(gè)架構(gòu)的時(shí)候遇到的第二個(gè)版本的問題。這里出現(xiàn)的版本問題是“你安裝的Python或者M(jìn)ySQLdb是面向32位機(jī)器還是64位”。因?yàn)镸ySQLdb只有2.7的版本。Python與MySQLdb在機(jī)器位數(shù)選擇必須統(tǒng)一,否則在使用的時(shí)候就會(huì)報(bào)出如下錯(cuò)誤:Python ImportError: DLL load failed: %1 不是有效的 Win32 應(yīng)用程序。

除此之外,這里應(yīng)該不會(huì)出現(xiàn)什么錯(cuò)誤。我就是下載了之后直接點(diǎn)擊安裝就可以了。

如果是在Linux下進(jìn)行安裝,有可能會(huì)報(bào)出mysql_config can't find的錯(cuò)誤。這因?yàn)槟銢]有安裝libmysqlclient-dev的庫(kù),安裝好之后去修改site.cfg下的mysql_config的路徑,然后就可以了。

在這里你會(huì)發(fā)現(xiàn),很多時(shí)候一個(gè)框架你不是不會(huì)搭建,而是搭建好之后報(bào)出的莫名奇妙的錯(cuò)誤讓人抓狂,而這些莫名奇妙的錯(cuò)誤大部分都是因?yàn)榘姹局g不兼容。

sqlalchemy的安裝

sqlalchemy是一個(gè)ORM框架,它提供了ORM應(yīng)該提供的功能。在JAVA WEB開發(fā)中習(xí)慣了使用ORM框架,直接使用MySQLdb和數(shù)據(jù)庫(kù)交互不是很習(xí)慣,所以又選擇安裝了這個(gè)框架。sqlalchemy下載地址是http://www.sqlalchemy.org/。它是對(duì)Python2和Python3都進(jìn)行了支持,還是很強(qiáng)大的。下載下來(lái)解壓,安裝找個(gè)和上面安裝webpy沒什么兩樣,依次走完每個(gè)過(guò)程就好。

這時(shí)候也發(fā)現(xiàn)了Python開發(fā)中需要安裝很多東西,在一個(gè)環(huán)境下安裝了,換了環(huán)境你還要安裝。我平時(shí)是在Windows下開發(fā),需要安裝一套。線上的環(huán)境是在Linux上,尼瑪還要安裝一套。搜索了一下,在Python中也沒找到像maven,ant等類似的工具。

上面這么多過(guò)程還只是框架的搭建,一行代碼還沒寫已經(jīng)耗費(fèi)了好久了。下面就給出部分的代碼示例。

代碼示例

簡(jiǎn)單示例

具體例子貼出官網(wǎng)首頁(yè)給出的簡(jiǎn)單示例:

【Python】windows下Eclipse中安裝集成webpy框架

運(yùn)行上述代碼,默認(rèn)監(jiān)聽的是8080端口。然后瀏覽器上輸入localhost:8080,就可以看到網(wǎng)頁(yè)上輸出Hello world。你第一個(gè)webpy項(xiàng)目就這樣成功了。

webpy中form表單

web開發(fā)中不可避免的就是表單的提交,在webpy中也提供了表單的強(qiáng)大支持,通過(guò)后端代碼的定義結(jié)合模版,讓表單可以輕松完成。詳細(xì)教程請(qǐng)查看官網(wǎng)連接-form表單使用

在開發(fā)的過(guò)程中在你的模版定義中需要注意的是$def with form這句代碼一定要位于第一行第一列,否則就會(huì)報(bào)出syntax invalid的錯(cuò)誤,具體示例如下:

【Python】windows下Eclipse中安裝集成webpy框架

需要注意的一點(diǎn)是,在接受前端數(shù)據(jù)的后端的post方法頂一個(gè)中,你必須首先調(diào)用form的validatest方法,否則的話,你就無(wú)法或得到前端傳遞過(guò)來(lái)的數(shù)據(jù)。

個(gè)人項(xiàng)目

下面就是我整個(gè)項(xiàng)目的代碼架構(gòu):

【Python】windows下Eclipse中安裝集成webpy框架

該項(xiàng)目主要功能的是注冊(cè),登錄。其中注冊(cè)部分使用的是webpy的form模塊,數(shù)據(jù)庫(kù)層使用的orm框架sqlalchemy。通過(guò)DAOLayer把數(shù)據(jù)庫(kù)接口層封裝起來(lái),對(duì)外提供友好接口;utils封裝了常用的接口;Const負(fù)責(zé)讀取數(shù)據(jù)庫(kù)的配置信息。主要代碼結(jié)構(gòu)就是上述。

其中需要注意的是存放css/js的static文件夾,必須和啟動(dòng)類同一個(gè)層次目錄,另外就是文件名必須為static,略蛋疼。

問題

安裝整個(gè)過(guò)程遇到的問題挺多,但是回頭去看看,大部分是自己疏忽,部分問題是不了解導(dǎo)致比如版本問題,還有部分是對(duì)框架的使用不熟悉導(dǎo)致。下面就列出一些問題

版本問題主要出現(xiàn)在Python與webpy、Python與MySQLdb兩部分。

webpy不熟悉導(dǎo)致中form表單生成問題,代碼示例中已經(jīng)給出提示

讀取配置文件的時(shí)候無(wú)法直接讀取json或者dict格式,解決辦法是參考了SO上的回答

sqlalchemy不熟悉導(dǎo)致插入數(shù)據(jù)之后,數(shù)據(jù)庫(kù)無(wú)數(shù)據(jù)的問題,原因是add之后沒有commit

form表單的生成一直異常,這個(gè)已經(jīng)在上文中說(shuō)明。生成語(yǔ)句必須在html中第一行表示

登錄成功之后跳轉(zhuǎn)失敗,這是url之間的相對(duì)路徑?jīng)]搞好

頁(yè)面之間的數(shù)據(jù)傳值問題

補(bǔ)充一下Linux中的安裝:

開發(fā)系統(tǒng)需要移植到Linux中,噩夢(mèng)開始了。在安裝中首先是MySQLdb安裝,通過(guò)setup.py去安裝,一直出現(xiàn)ImportError: No module named setuptools.初始理解是setuptools模塊沒有安裝,但是安裝其他模塊的時(shí)候可以使用Python setup.py安裝的啊。繼續(xù)google,看到有篇文章提到權(quán)限、sudo兩個(gè)關(guān)鍵詞。我擦。瞬間明了了,是不是權(quán)限不夠。因?yàn)榘惭b其他模塊的時(shí)候,也提示權(quán)限不夠,后來(lái)使用sudo搞定的。試了一下,尼瑪果真是權(quán)限不夠。你這安裝錯(cuò)誤提示也太尼瑪操蛋了吧。

權(quán)限問題解決,但是出現(xiàn)另一個(gè)錯(cuò)誤EnvironmentError: mysql_config not found。google了一下,一種說(shuō)法是沒有安裝msyql的client還有connector,但是我保證是安裝了??;另一種說(shuō)法是MySQLdb的配置文件中沒有指示正確mysql_config路徑,去看了下MySQLdb的安裝時(shí)候讀取的配置文件site.cfg,果真看到配置是一個(gè)默認(rèn)被注釋掉的選項(xiàng),但是我mysql_config不是處在默認(rèn)位置,修改了該配置選項(xiàng)指向我系統(tǒng)所在的位置,安裝成功。

sqlalchemy安裝好之后在啟動(dòng)的時(shí)候報(bào):

sqlalchemy.exc.OperationalError: (OperationalError) (2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)") None None

該錯(cuò)誤就是在說(shuō)sqlalchemy在連接mysql的時(shí)候在固定位置找不到mysql的socket的文件。所以就通過(guò)如下幾種方式去查看

1:首先看mysql是否啟動(dòng),沒啟動(dòng)肯定就不會(huì)有socket的文件

2:?jiǎn)?dòng)之后看了mysql的配置文件發(fā)現(xiàn),它是采用的默認(rèn)配置,是把socket配置到tmp目錄下了

3:查看如何更改sqlalchemy尋找mysql的啟動(dòng)文件socket的位置,結(jié)果就是修改了如下:

"mysql+mysqldb://" + Const.USERNAME + ":" + Const.PASSWD + "@" + Const.HOST + ?"/" + Const.DBNAME + "?charset=utf8&use_unicode=0&unix_socket=/tmp/mysql.sock"

同理,在MySQLdb連接的時(shí)候也需要修改socket配置

馬哥想聽你動(dòng)人的成長(zhǎng)故事,所以發(fā)起了一個(gè)征文活動(dòng)。

點(diǎn)擊閱讀原文或長(zhǎng)按二維碼添加我的個(gè)人微信,立刻了解詳情。

【Python】windows下Eclipse中安裝集成webpy框架

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!