久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

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

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

本文分幾個部分:

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

第二部分是eclipse中PyDev插件的安裝,安裝之后在eclipse中就可以進行Python的開發;

第三個部分是webpy的安裝;

第四部分是MySQLdb的安裝;

第五部分是sqlalchemy的安裝;

最后則是代碼示例。

Python安裝

在Windows下無論安裝什么都是比較麻煩的,同樣包括Python。在Windows下安裝Python可以去Python官網下載,在這里有一個下載版本的問題?,F在可以分為兩個大版本,即3.X之前和3.X之后。如果單純是做Python的開發(不會依賴其他第三方庫),當然是選擇3.x之后的版本。因為Python的升級是不可阻擋的趨勢,還不如早早選擇新版本,省的以后再版本更換的時候出現額外的精力;但是如果是要和其他框架又耦合,那么建議是選擇3.x之前的版本。在整個框架搭建過程中不致一次的出現因為版本不兼容導致莫名奇妙的問題出現,花費很長的時間去定位。比如開始Python開始是3.4最新版本,但是webpy依賴的是Python2.7的版本,無法正常安裝(因為3.4和2.7之間有些語法不同)。

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

修改系統路徑辦法:我的電腦->右鍵“屬性”->選擇“高級系統設置”->選擇“環境變量”->選擇“系統變量”->單擊Path屬性,把Python.exe目錄添加進去。如下圖所示:

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

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

安裝之后運行cmd,然后直接輸入Python進入Python輸入命令模式:

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

eclipse安裝Python插件

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

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

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

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

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

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

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

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

這個時候,eclipse就可以進行Python的開發了。其實上述不要忘記Python interpreter的設置,其他正常情況下都不會出現問題的。經過上述步驟之后,在eclipse中新建項目就可以看到PyDev Project選項。按照正常的新建源代碼,以Python的方式運行,整個過程結束。

webpy安裝

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

安裝webpy可以去webpy官網下載,下載下來直接解壓到某個目錄即可。在這里選擇解壓到Python安裝目錄下面,解壓后的webpy的目錄如下圖所示:

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

然后通過Python setup.py install安裝。一般Python中安裝第三方庫都是通過setup.py安裝,或者easy_install等方式。不同方式也沒有無所謂的優劣之分,純碎是個人習慣和環境了。

在安裝的時候,有可能會報出如下錯誤?import error model utils not exist等類似錯誤。具體錯誤原因是因為上述命令會執行web文件夾下的__init__.py文件,其源碼文件如下所示:

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

可以看住該文件會加載標準庫和web文件夾下的各種py文件執行一遍生成pyc文件以便以后可以主動執行。但是__init__.py在加載其他文件的時候,因為其他文件的不在當前Python的目錄下,可以通過import sys,然后打印sys.path,看一下當前Python目錄。解決辦法是把當前的位置添加進sys.path,即在__init__.py源碼文件中添加下面一句代碼:

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

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

添加完這兩句代碼再次執行,就可以安裝成功了。如果不添加上面的代碼,你也可以通過修改Path路徑在完成安裝的。另外,如果上面你安裝了Python而且也修改了Path路徑,那么這個問題就不會出現。

MySQLdb的安裝

web開發中數據庫是不可缺少的,對于MySQL來說,Python有MySQLdb的支持。MySQLdb是Python與mysql之間進行連接的一個庫,就像Java與其他數據庫直接使用JDBC一樣。MySQLdb可以直接通過下載msi格式的安裝包直接安裝,下載地址:http://sourceforge.net/projects/mysql-Python/

在使用安裝包安裝的時候需要注意,你這個時候必須設定了Path路徑,否則安裝包在安裝的時候是無法找到Python的執行路徑的。因為是編譯好的安裝包,你又無法修改源代碼,所以是無法安裝成功的。除此之外需要注意的是Python與MySQLdb之間的版本問題也需要一個同意。這是我搭建整個架構的時候遇到的第二個版本的問題。這里出現的版本問題是“你安裝的Python或者MySQLdb是面向32位機器還是64位”。因為MySQLdb只有2.7的版本。Python與MySQLdb在機器位數選擇必須統一,否則在使用的時候就會報出如下錯誤:Python ImportError: DLL load failed: %1 不是有效的 Win32 應用程序。

除此之外,這里應該不會出現什么錯誤。我就是下載了之后直接點擊安裝就可以了。

如果是在Linux下進行安裝,有可能會報出mysql_config can't find的錯誤。這因為你沒有安裝libmysqlclient-dev的庫,安裝好之后去修改site.cfg下的mysql_config的路徑,然后就可以了。

在這里你會發現,很多時候一個框架你不是不會搭建,而是搭建好之后報出的莫名奇妙的錯誤讓人抓狂,而這些莫名奇妙的錯誤大部分都是因為版本之間不兼容。

sqlalchemy的安裝

sqlalchemy是一個ORM框架,它提供了ORM應該提供的功能。在JAVA WEB開發中習慣了使用ORM框架,直接使用MySQLdb和數據庫交互不是很習慣,所以又選擇安裝了這個框架。sqlalchemy下載地址是http://www.sqlalchemy.org/。它是對Python2和Python3都進行了支持,還是很強大的。下載下來解壓,安裝找個和上面安裝webpy沒什么兩樣,依次走完每個過程就好。

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

上面這么多過程還只是框架的搭建,一行代碼還沒寫已經耗費了好久了。下面就給出部分的代碼示例。

代碼示例

簡單示例

具體例子貼出官網首頁給出的簡單示例:

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

運行上述代碼,默認監聽的是8080端口。然后瀏覽器上輸入localhost:8080,就可以看到網頁上輸出Hello world。你第一個webpy項目就這樣成功了。

webpy中form表單

web開發中不可避免的就是表單的提交,在webpy中也提供了表單的強大支持,通過后端代碼的定義結合模版,讓表單可以輕松完成。詳細教程請查看官網連接-form表單使用

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

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

需要注意的一點是,在接受前端數據的后端的post方法頂一個中,你必須首先調用form的validatest方法,否則的話,你就無法或得到前端傳遞過來的數據。

個人項目

下面就是我整個項目的代碼架構:

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

該項目主要功能的是注冊,登錄。其中注冊部分使用的是webpy的form模塊,數據庫層使用的orm框架sqlalchemy。通過DAOLayer把數據庫接口層封裝起來,對外提供友好接口;utils封裝了常用的接口;Const負責讀取數據庫的配置信息。主要代碼結構就是上述。

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

問題

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

版本問題主要出現在Python與webpy、Python與MySQLdb兩部分。

webpy不熟悉導致中form表單生成問題,代碼示例中已經給出提示

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

sqlalchemy不熟悉導致插入數據之后,數據庫無數據的問題,原因是add之后沒有commit

form表單的生成一直異常,這個已經在上文中說明。生成語句必須在html中第一行表示

登錄成功之后跳轉失敗,這是url之間的相對路徑沒搞好

頁面之間的數據傳值問題

補充一下Linux中的安裝:

開發系統需要移植到Linux中,噩夢開始了。在安裝中首先是MySQLdb安裝,通過setup.py去安裝,一直出現ImportError: No module named setuptools.初始理解是setuptools模塊沒有安裝,但是安裝其他模塊的時候可以使用Python setup.py安裝的啊。繼續google,看到有篇文章提到權限、sudo兩個關鍵詞。我擦。瞬間明了了,是不是權限不夠。因為安裝其他模塊的時候,也提示權限不夠,后來使用sudo搞定的。試了一下,尼瑪果真是權限不夠。你這安裝錯誤提示也太尼瑪操蛋了吧。

權限問題解決,但是出現另一個錯誤EnvironmentError: mysql_config not found。google了一下,一種說法是沒有安裝msyql的client還有connector,但是我保證是安裝了?。涣硪环N說法是MySQLdb的配置文件中沒有指示正確mysql_config路徑,去看了下MySQLdb的安裝時候讀取的配置文件site.cfg,果真看到配置是一個默認被注釋掉的選項,但是我mysql_config不是處在默認位置,修改了該配置選項指向我系統所在的位置,安裝成功。

sqlalchemy安裝好之后在啟動的時候報:

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

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

1:首先看mysql是否啟動,沒啟動肯定就不會有socket的文件

2:啟動之后看了mysql的配置文件發現,它是采用的默認配置,是把socket配置到tmp目錄下了

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

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

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

馬哥想聽你動人的成長故事,所以發起了一個征文活動。

點擊閱讀原文或長按二維碼添加我的個人微信,立刻了解詳情。

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

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 静海县| 桦南县| 西丰县| 凤庆县| 凤山市| 神农架林区| 兴和县| 徐闻县| 天津市| 庐江县| 井冈山市| 嘉善县| 彭泽县| 石台县| 岢岚县| 澄江县| 砀山县| 普安县| 鄢陵县| 和林格尔县| 页游| 阳信县| 香港| 清丰县| 金平| 满城县| 巴林左旗| 新田县| 灵山县| 雷山县| 吴川市| 商城县| 泗阳县| 温泉县| 稻城县| 台州市| 南岸区| 富蕴县| 绥棱县| 中牟县| 罗田县|