今天因為要提供幾個開放的介面給我畢設相關的平台呼叫,所以又開始折騰之前在sae
上搭的tornado
應用。
之前記錄過乙個 如何在 sae 上使用 tornado,這次續上,關於在sae
裡使用tornado
框架時基本的mysql
操作。因為自己剛才找了很久資料才用起來,也怪自己之前沒在tornado
裡面用過mysql
,所以為其他同學以後少走彎路來乙個整理貼。
首先在應用控制台
初始化共享型mysql
。
根據 sae官方文件 底部介紹,你可以通過以下方法獲得連線資料庫所需的引數。
import sae.const
sae.const.mysql_db # 資料庫名
sae.const.mysql_user # 使用者名稱
sae.const.mysql_pass # 密碼
sae.const.mysql_host # 主庫網域名稱(可讀寫)
sae.const.mysql_port # 埠,型別為,請根據框架要求自行轉換為int
sae.const.mysql_host_s # 從庫網域名稱(唯讀)
注意:需要將sae.const.mysql_port
轉成int型
。
sae python
內建了mysqldb模組
,用法如下:
1 匯入sae
常量和mysqldb
模組:
import sae.const
import mysqldb
2 連線資料庫:
db=mysqldb.connect(host=sae.const.mysql_host,port=int(sae.const.mysql_port ),user=sae.const.mysql_user ,passwd=sae.const.mysql_pass ,db=sae.const.mysql_db)
3 獲取cursor
物件,用於執行命令:
cursor = db.cursor() #預設型別,返回結果如:(u'ccc', 33l)
cursor = db.cursor(cursorclass=mysqldb.cursors.dictcursor) #返回字典形式,如:
4 執行sql
語句:
cursor.execute(「select * from table_name where what = 『what』」) #模擬資料: [,]
5 輸出返回結果:
result = cursor.fetchone()
if result is none:
print 「none」
else:
print 「%s」%result #
print result[『name』] #chengkang
result = cursor.fetchall()
for row in result:
print 「%s」%row #
for col in row:
print 「%s」%col #chengkangmale
以上是最基本的使用。反正我暫時就用到這些:)。一些細節的問題之後再來吧。
參考了這個部落格。
class testhandler(tornado.web.requesthandler):
def get(self):
premise = self.get_argument('premise', "no_data")
consequence = self.get_argument('consequence', "no_data")
try:
import sae.const
import mysqldb
try:
db=mysqldb.connect(host=sae.const.mysql_host,port=int(sae.const.mysql_port ),user=sae.const.mysql_user ,passwd=sae.const.mysql_pass ,db=sae.const.mysql_db)
cursor = db.cursor(cursorclass=mysqldb.cursors.dictcursor)
#cursor = db.cursor()
try:
cursor.execute("select * from immediate_consequences")
one = cursor.fetchall()
#cursor.execute("select * from immediate_consequences where premise='"+premise+"' and consequence='"+consequence+"'")
#one = cursor.fetchone()
a = ""
#for row in cursor.fetchall():
# for item in row:
# a += item
if one is none:
self.write("not in the database")
else:
#self.write(one['premise']+one['consequence'])
for item in one:
self.write("yes%s"%item)
#self.write(a.fetchone())
#self.write("premise:",one['premise']," and consequence:",one['consequence'])
except:
self.write(「wtf」)
cursor.close()
except:
self.write("database connection error")
except:
self.write("hello tornado")
以上。 Android Wifi自動開啟並連線
wifi自動開啟並連線到指定的熱點 do catch interruptedexception e while madmin.iswificonnect 判斷wifi是否連線成功連線指定wifi熱點 public void connectwifi string ssid,string passwor...
Django配置並連線MySQL
sudo apt get install mysql server設定好你的root密碼,假設root密碼是abcd。進入mysql的shell 需要輸入root密碼abcd mysql u root p為你的django專案新建乙個資料庫 create database django db 使用 ...
並查集 冗餘連線
思路 記錄1到n的每個數的根,因為如果有環,導致環相連的 u,v 一定有相同的root,我們可以理解為是乙個節點的兩個分支,通過 u,v 被連起來了,既然他們是乙個節點的兩個分支,那麼他們一定有相同的root,所以直接移除 u,v 就好啦。class solution def findredunda...