2013-02-22 52 views
0

我正在處理用戶上傳圖片的應用程序。我必須將其存儲到MySQL數據庫。然後顯示它。 我試過下面的代碼。使用Google App Engine(Python)將圖片上傳到MYSQL

import MySQLdb as mdb 
// Lines of code here 
img=self.request.get('img') 
cursor.execute("UPDATE Candidate SET profile_pic=%s ",(mdb.escape_string(img))) 
// lines of code here 
conn.commit() 
conn.close() 

它運行在本地主機,但是當我在服務器上部署應用程序時,它會產生以下錯誤。

ImportError:No module named _mysql 任何指導原則?

+0

爲什麼當你的網頁應用程序運行在GAE之上時,你的數據存儲和blob服務器不能滿足你的要求時,你使用的是單獨的數據庫?你的MySQL託管在哪裏,它可能與刪除訪問有關? – spiritwalker 2013-02-22 07:12:08

+0

@spiritwalker,我正在使用谷歌雲SQL。因爲有許多要求不允許我使用谷歌數據存儲。這就是爲什麼使用谷歌雲數據庫。 – fledgling 2013-02-22 07:17:15

回答

4
from google.appengine.api import rdbms 
conn = rdbms.connect(instance='instance_name', database='database', user='user', password='password') 

Using Google Cloud SQL with App Engine Python SDK

MySQL是不是谷歌的Cloud SQL。

根據評論擴展此答案,對於使用mySQL的本地開發,您可以通過GAE提供的雲界面進行。然後當你部署時,你將不會遇到這些問題。儘管事實上這是你真正在本地使用的,你根本不需要導入MySQL。

+0

MySQL不是GCS,這是正確的。但Google Cloud SQL正在使用MySQL數據庫,根據我的經驗,只有連接不同於標準的MySQL數據庫。 (僅適用於每個人的信息:) – Eich 2013-02-22 10:22:27

+0

當然,但文檔說明你應該安裝MySQL來在本地測試,而且似乎在部署時,OP失敗。那麼,爲什麼它在服務器端也是MySQL呢? – 2013-02-22 10:26:00

+0

App Engine有許多限制。其中之一是檢查您是否可以從Google App Engine訪問Google Cloud SQL實例。普通的JDBC驅動程序不檢查這一點。 AppEngineDriver(用於Java)和普通的JDBC API之間還有很多不同之處。又如,AppEngineDriver使用Google語音[ApiProxy](https://developers.google.com/appengine/docs/java/javadoc/com/google/apphosting/api/ApiProxy)與雲端sql實例進行通信。但只有谷歌知道所有的差異:)。 – Eich 2013-02-22 11:12:23

相關問題