python開發(fā)web服務(wù)的方法是什么

本篇內(nèi)容介紹了“python開發(fā)web服務(wù)的方法是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

10年積累的成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計制作后付款的網(wǎng)站建設(shè)流程,更有衛(wèi)東免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

開發(fā)功能不是特別復(fù)雜的web服務(wù),可以考慮使用bottle框架。原因:一、Python開發(fā)效率高呀!不信你比比同樣的功能Python幾行可以搞定?換java試試?換C++試試?作為這幾種語言都使用過的我來說,用過java就盡量不用C++,用過Python就盡量不用java,真的不堪回首。

使用bottle框架首先安裝。一個指令搞定。

# pip install bottle

分享一個遇到的pip的問題,我Python版本很低2.6.6。本來通過安裝yum的epel,已經(jīng)成功安裝了好用的pip。但是每次我用pip命令,最下方都會提示升級

You are using pip version 9.0.3, however version 20.0.2 is available.You should consider upgrading via the 'pip install --upgrade pip' command

我看這個提示也沒什么惡意,就執(zhí)行了pip install --upgrade pip。然后pip指令就不能用了,就和升級glibc錯誤之后,ls cd這種shell指令都無法執(zhí)行是一個效果。而且升級了之后,在想安裝回低版本的pip就沒有對應(yīng)的安裝包了。yum只能找到20.0.2版本的(老版本會被覆蓋難道?)。

http://bootstrap.pypa.io/2.6/get-pip.py

下載了get-pip.py也無法安裝成功。最后在上面的地址下載到了2.6版本的安裝文件,才成功安裝可以使用的pip。(看見地址里的2.6了嗎?)

pip install bottle成功之后,進入Python命令行import bottle,沒報錯就是成功了。我的web服務(wù)就一個文件bottleweb.py,代碼如下

#coding=utf-8from bottle import (run, route, get, post, put, delete, request, hook, response, static_file, app)import jsonimport MySQLdb #本例子需要操作數(shù)據(jù)庫,否則可以不寫這行,這個數(shù)據(jù)庫包pip估計安裝不會成功,我是用yum install MySQL-python成功的import sysreload(sys)sys.setdefaultencoding('utf8')
import bottleapp = bottle.default_app()#處理靜態(tài)資源需要定義,沒有靜態(tài)資源可以不寫這行#搭建vue腳手架前后臺聯(lián)調(diào)時要下面兩個@hook內(nèi)容,否則會報跨域訪問資源的錯誤@hook('before_request')def validate():    REQUEST_METHOD = request.environ.get('REQUEST_METHOD')
   HTTP_ACCESS_CONTROL_REQUEST_METHOD = request.environ.get('HTTP_ACCESS_CONTROL_REQUEST_METHOD')    if REQUEST_METHOD == 'OPTIONS' and HTTP_ACCESS_CONTROL_REQUEST_METHOD:        request.environ['REQUEST_METHOD'] = HTTP_ACCESS_CONTROL_REQUEST_METHOD

@hook('after_request')def enable_cors():    response.headers['Access-Control-Allow-Origin'] = '*'    response.headers['Access-Control-Allow-Methods'] = 'GET,POST,PUT,DELETE,OPTIONS'    response.headers['Access-Control-Allow-Headers'] = '*'
@route('/test2020/dist/<path>')#靜態(tài)資源在web服務(wù)下的地址,沒放前端的靜態(tài)資源這幾個route和app.route可以不寫def stat(path):    return static_file(path, root='./dist/')
@app.route('/test2020/dist/static/js/<path>')  def js(path):  #這幾個目錄我寫成這樣是因為vue打包完后目錄結(jié)構(gòu)就是dist 里面static等等    return static_file(path, root='./dist/static/js/')
@app.route('/test2020/dist/static/css/<path>')  def css(path):      return static_file(path, root='./dist/static/css/')    @get('/test2020/date')#返回某個表中的日期,看sql你就明白了def helloins():    db = MySQLdb.connect("127.0.0.1", "yourusername", "yourpassword", "yourDBname", charset='utf8' )    cursor = db.cursor()    sql = "select DISTINCT date from testtable"    print sql    cursor.execute(sql)    data = cursor.fetchall()    jsondata={}    results=[]    for row in data:        result = {}        result['DATE'] = row[0]        results.append(result)    jsondata['code']=0    jsondata['datas']=results    return jsondata  #返回json格式為了方便前端vue接收處理,其實返回各種類型都可以    @get('/test2020/helloworld')def helloworld():    return 'hello world!'    if __name__ == '__main__':    run(host='0.0.0.0', port=2020, debug=True, reloader=True)

bottleweb.py所在目錄執(zhí)行#python bottleweb.py,web服務(wù)就啟動了簡單吧?瀏覽器訪問http://127.0.0.1:2020/test2020/helloworld試試

如果你安裝了MySQL數(shù)據(jù)庫可以測試test2020/date的url是否能返回結(jié)果

數(shù)據(jù)庫只有有下面的數(shù)據(jù)就可以

python開發(fā)web服務(wù)的方法是什么

前端頁面是這個樣子的,給用戶選擇某個日期,用于手機端。

python開發(fā)web服務(wù)的方法是什么

前端是用vue+vux來開發(fā)的,開發(fā)完打包的成果就是上文提到的dist目錄下的東西。本文不詳細討論了。后續(xù)我會講一講MySQL和vue開發(fā)的一些坑。如果覺得上面的代碼有點復(fù)雜,可以把所有route, app.route的東西刪除,把/test2020/date語句塊也刪除,把@hook刪除,MySQL的東西刪除,前端的東西也完全不考慮,就是最簡單的bottle web服務(wù)了。這樣有助于一步一步學(xué)習(xí)。如果幫到你得話請幫點個在看。

“python開發(fā)web服務(wù)的方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站名稱:python開發(fā)web服務(wù)的方法是什么
文章鏈接:http://www.muchs.cn/article40/ghjheo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、App設(shè)計、網(wǎng)站建設(shè)電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)標簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化