python+mysql實(shí)現(xiàn)簡(jiǎn)單的web程序
這次要為我的python程序加上數(shù)據(jù)庫(kù),主要是實(shí)現(xiàn)從mysql中查詢出數(shù)據(jù)并在頁(yè)面上顯示出來(lái)。
首先是mysql的配置文件config.py
host="127.0.0.1" user="root" password="" charset="utf8" database="service" port=3306
然后是從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)的aService.py
import MySQLdb import sys import config class AService(object): def getA(self,id): conn = MySQLdb.connect(host=config.host,user=config.user,passwd=config.password,port=config.port,db=config.database,charset=config.charset) result=[] try: cursor = conn.cursor(); cursor.execute("select id,code,title from test_a where id='%d'"%(id)) result = cursor.fetchone() except Exception,e: print "System error: ",e result = "error" finally: cursor.close() conn.close() return result
其中cursor.execute()返回是執(zhí)行語(yǔ)句影響的行數(shù),剛開(kāi)始我以為是返回的結(jié)果,導(dǎo)致繞了很遠(yuǎn)的彎路。真正為返回結(jié)果的是cursor.fechone(),表示獲取執(zhí)行結(jié)果的第一條。同時(shí)還有cursor.fetchall(),表示獲取所有結(jié)果。如果獲取了多個(gè)字段的話,結(jié)果為數(shù)組類型,按照查詢結(jié)果的字段順序排序。
MySQLdb是python與數(shù)據(jù)庫(kù)連接的一個(gè)模塊。這個(gè)模塊并不是本來(lái)就存在的,需要下載并安裝到python得目錄下才行。MAC安裝這個(gè)模塊有個(gè)奇怪的要求,就是必須在本機(jī)安裝了mysql,即便實(shí)際上程序使用的外部的數(shù)據(jù)庫(kù)。在已安裝mysql的前提下,發(fā)現(xiàn)安裝mysqldb錯(cuò)誤,并報(bào)了mysql目錄找不到錯(cuò)誤時(shí),可用以下方法解決:
在用戶的home目錄下vi .profile
加入 export PATH=$PATH:/user/local/mysql/bin,退出并保存
再執(zhí)行source ./.profile命令并退出終端
這樣過(guò)后,在重新安裝mysqldb應(yīng)該就不會(huì)報(bào)找不到mysql目錄的錯(cuò)誤了。
接下來(lái)是主程序hello.py
import web import aService import sys urls = ("/Service/A","hello") app = web.application(urls,globals()) class hello: def GET(self): mservice = aService.AService() result = mservice.getA(1) json = "" json +="{" json +="'id':"+str(result[0])+"," json +="'code':'"+result[1]+"'," json +="'title':'"+result[2]+"'" json +="}" return json; if __name__=="__main__": app.run()
這個(gè)部分創(chuàng)建了一個(gè)訪問(wèn)路徑/Service/A,該路徑對(duì)應(yīng)的服務(wù)是hello類提供的。在這個(gè)類的get方法中調(diào)用了aService的getA方法。在頁(yè)面上顯示出一個(gè)json格式的文本。執(zhí)行步驟如下
終端:python hello.py 8080
瀏覽器:localhost:8080/Service/A
- 利用webqq協(xié)議使用python登錄qq發(fā)消息源碼參考
- python調(diào)用java的Webservice示例
- python完成FizzBuzzWhizz問(wèn)題(拉勾網(wǎng)面試題)示例
- Python Web服務(wù)器Tornado使用小結(jié)
- Python通過(guò)websocket與js客戶端通信示例分析
- python常用web框架簡(jiǎn)單性能測(cè)試結(jié)果分享(包含django、flask、bottle、tornado)
- 一個(gè)超級(jí)簡(jiǎn)單的python web程序
- Python Web框架Flask下網(wǎng)站開(kāi)發(fā)入門實(shí)例
- Python工程師面試題 與Python基礎(chǔ)語(yǔ)法相關(guān)
- Python工程師面試題 與Python Web相關(guān)
相關(guān)文章
Python astype(np.float)函數(shù)使用方法解析
這篇文章主要介紹了Python astype(np.float)函數(shù)使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python基于回溯法子集樹(shù)模板解決全排列問(wèn)題示例
這篇文章主要介紹了Python基于回溯法子集樹(shù)模板解決全排列問(wèn)題,簡(jiǎn)單描述了全排列問(wèn)題并結(jié)合實(shí)例形式分析了Python使用回溯法子集樹(shù)模板解決全排列問(wèn)題的具體步驟與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-09-09基于Python實(shí)現(xiàn)格斗小游戲的示例代碼
格斗游戲,曾經(jīng)是街機(jī)廳里最火爆的游戲之一,甚至可以把“之一”去掉,那個(gè)年代的格斗游戲就是街機(jī)游戲的王。本文就來(lái)用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的格斗游戲,感興趣的可以了解一下2023-03-03python連接FTP服務(wù)器的實(shí)現(xiàn)方法
本文主要介紹了python連接FTP服務(wù)器的實(shí)現(xiàn)方法,主要使用ftp操作進(jìn)行連接FTP服務(wù)器、獲取當(dāng)前目錄文件清單、上傳文件等操作,具有一定的參考價(jià)值,感興趣的可以了解一下2022-06-06Python使用pyinstaller實(shí)現(xiàn)學(xué)生管理系統(tǒng)流程
pyinstaller是一個(gè)非常簡(jiǎn)單的打包python的py文件的庫(kù),下面這篇文章主要給大家介紹了關(guān)于Python?Pyinstaller庫(kù)安裝步驟以及使用方法的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02Python實(shí)現(xiàn)GUI學(xué)生管理系統(tǒng)的示例代碼
這篇文章主要為大家介紹了如何留Python語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易的GUI學(xué)生管理系統(tǒng),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考下2022-06-06使用Tensorflow將自己的數(shù)據(jù)分割成batch訓(xùn)練實(shí)例
今天小編就為大家分享一篇使用Tensorflow將自己的數(shù)據(jù)分割成batch訓(xùn)練實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python 轉(zhuǎn)換時(shí)間戳為指定格式日期
這篇文章主要為大家介紹了Python轉(zhuǎn)換時(shí)間戳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-12-12