python+mysql實(shí)現(xiàn)簡(jiǎn)單的web程序
這次要為我的python程序加上數(shù)據(jù)庫(kù),主要是實(shí)現(xiàn)從mysql中查詢出數(shù)據(jù)并在頁(yè)面上顯示出來。
首先是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ù),剛開始我以為是返回的結(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è)模塊并不是本來就存在的,需要下載并安裝到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命令并退出終端
這樣過后,在重新安裝mysqldb應(yīng)該就不會(huì)報(bào)找不到mysql目錄的錯(cuò)誤了。
接下來是主程序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è)訪問路徑/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ǎng)面試題)示例
- Python Web服務(wù)器Tornado使用小結(jié)
- Python通過websocket與js客戶端通信示例分析
- python常用web框架簡(jiǎn)單性能測(cè)試結(jié)果分享(包含django、flask、bottle、tornado)
- 一個(gè)超級(jí)簡(jiǎn)單的python web程序
- Python Web框架Flask下網(wǎng)站開發(fā)入門實(shí)例
- Python工程師面試題 與Python基礎(chǔ)語(yǔ)法相關(guān)
- Python工程師面試題 與Python Web相關(guān)
相關(guān)文章
Python使用protobuf序列化和反序列化的實(shí)現(xiàn)
protobuf是一種二進(jìn)制的序列化格式,相對(duì)于json來說體積更小,傳輸更快,本文主要介紹了Python使用protobuf序列化和反序列化的實(shí)現(xiàn),感興趣的可以了解一下2021-05-05
Python實(shí)現(xiàn)常見限流算法的示例代碼
在系統(tǒng)的穩(wěn)定性設(shè)計(jì)中,需要考慮到的就是限流,避免高并發(fā)環(huán)境下一下子把服務(wù)整垮了,本文為大家整理了一些Python實(shí)現(xiàn)的常見限流算法,希望對(duì)大家有所幫助2024-03-03
Python基于Faker假數(shù)據(jù)構(gòu)造庫(kù)
這篇文章主要介紹了Python基于Faker假數(shù)據(jù)構(gòu)造庫(kù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
將Django項(xiàng)目部署到CentOs服務(wù)器中
今天小編就為大家分享一篇關(guān)于將Django項(xiàng)目部署到CentOs服務(wù)器中的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10

