筆者經過flask web(Miguel著,封面是一條狗)一書的學習,打算實現一個旅游類網站,在此過程中發現,相對於書中的flasky博客程式,需要作出一些改變: 1. 註冊郵箱:國內要使用126,qq等郵箱。預設讀者瞭解過flasky郵件的實現方式,而使用126、qq郵箱的不同之處有: 第一,郵箱 ...
筆者經過flask web(Miguel著,封面是一條狗)一書的學習,打算實現一個旅游類網站,在此過程中發現,相對於書中的flasky博客程式,需要作出一些改變:
1. 註冊郵箱:國內要使用126,qq等郵箱。預設讀者瞭解過flasky郵件的實現方式,而使用126、qq郵箱的不同之處有:
第一,郵箱埠 ['MAIL_PORT'] = 465 不同於gmail的587埠
第二,使用協議 ['MAIL_USE_SSL'] = True 不同於gmail的TLS協議
第三,用戶名 ['MAIL_USERNAME'] = '2327****81' 只需提供用戶名,不需要尾碼名(@qq.com)
第四,密碼 ['MAIL_PASSWORD'] = 'apnrtcqkuq****ce' 到郵箱運營商開啟stmp服務,並獲取授權碼(並非郵箱的登錄密碼)
其他配置與flasky環境類似,可以使用單獨的config文件存儲這些關乎安全的信息。
2. 更換資料庫:書中使用的sqlite是一種輕型的本地資料庫,目的在於簡單易學,但想在互聯網上部署一個可供人們訪問的web程式,需要使用那些高併發、支持遠程服務的中型資料庫,例如MySQL,在新浪雲上部署web程式最好使用MySQL,因為在計算量不高的情況下,是免費的。在此推薦使用新浪雲SAE部署web程式,整個部署流程友好,適合個人開發者和實驗展示程式,最重要的是對於免費用戶提供的雲空間和資料庫計算量也足夠大。書中作者也推薦了一個友好的免費部署平臺,但遺憾的是國內需要使用VPN訪問,速度極慢。
Flask框架使用mysql和sqlite類似,我使用的是Ubuntu下的Pycharm開發環境,建立flask工程。Pycharm附帶了資料庫可視化插件,無需使用navicat這些工具(這個工具配置起來也是很麻煩的,國內訪問極慢)。
安裝MySQL :
sudo apt-get install mysql-server
sudo apt-get
install mysql-client
sudo apt-get
install libmysqlclient-dev
安裝完畢就啟用了mysql服務,這個時候無論從終端登錄mysql的root賬戶還是Pycharm訪問資料庫都會報1045錯誤,原因在於沒有給root用戶設置密碼,解決方法和相關的指令不再贅述,參考http://blog.csdn.net/wwwdc1012/article/details/51745906 需要註意的是:mysql的用戶可以創建很多個,資料庫也可以創建很多個。
能夠以root新密碼登錄mysql後,根據程式的需要創建用戶和資料庫。常用的MySQL指令參考:http://www.cnblogs.com/penciler/p/4813157.html 需要註意的是,我們只需要創建資料庫以及訪問該資料庫的用戶名、密碼,並不需要創建該資料庫內的表,表應該由flask程式中的SQLalchemy語句在web服務啟動時創建(參考書中的models類)。
在flask工程安裝並引入Flask-MySQL、Flask-MySQLdb、Flask_SQLalchemy包,安裝完畢後在程式中填寫資料庫URI:
['SQLALCHEMY_DATABASE_URI'] = 'mysql://用戶名:密碼@localhost:3306/資料庫名'
打開Pycharm的Database插件-->DataSourse-->MySQL,輸入剛纔在機器中創建好的mysql用戶名、密碼、資料庫名,點擊Test Connection,顯示成功,你的可視化資料庫已經配置完畢,flask程式可以在資料庫中讀寫數據,在Database插件可以直觀的看到有哪些表、主鍵、外鍵、具體的數據。
但不知是否和Pycharm的版本有關,我的Test Connection按鈕是灰色的,顯示缺少驅動文件MySQL Connector/J ver5.1.40,旁邊提供了Download鏈接但是點下去毫無反應。在MySQL官網下載這個驅動文件,併在這個視窗Additional添加此驅動,重啟Pycharm,Test Connection按鈕可以正常工作。
至此,實際flask web程式中使用到的郵箱和資料庫的相關問題就解決了。