91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python開發web服務的方法是什么

發布時間:2022-01-12 17:55:59 來源:億速云 閱讀:167 作者:iii 欄目:大數據

本篇內容介紹了“python開發web服務的方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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

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

# pip install bottle

分享一個遇到的pip的問題,我Python版本很低2.6.6。本來通過安裝yum的epel,已經成功安裝了好用的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

我看這個提示也沒什么惡意,就執行了pip install --upgrade pip。然后pip指令就不能用了,就和升級glibc錯誤之后,ls cd這種shell指令都無法執行是一個效果。而且升級了之后,在想安裝回低版本的pip就沒有對應的安裝包了。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服務就一個文件bottleweb.py,代碼如下

#coding=utf-8from bottle import (run, route, get, post, put, delete, request, hook, response, static_file, app)import jsonimport MySQLdb #本例子需要操作數據庫,否則可以不寫這行,這個數據庫包pip估計安裝不會成功,我是用yum install MySQL-python成功的import sysreload(sys)sys.setdefaultencoding('utf8')
import bottleapp = bottle.default_app()#處理靜態資源需要定義,沒有靜態資源可以不寫這行#搭建vue腳手架前后臺聯調時要下面兩個@hook內容,否則會報跨域訪問資源的錯誤@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>')#靜態資源在web服務下的地址,沒放前端的靜態資源這幾個route和app.route可以不寫def stat(path):    return static_file(path, root='./dist/')
@app.route('/test2020/dist/static/js/<path>')  def js(path):  #這幾個目錄我寫成這樣是因為vue打包完后目錄結構就是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所在目錄執行#python bottleweb.py,web服務就啟動了簡單吧?瀏覽器訪問http://127.0.0.1:2020/test2020/helloworld試試

如果你安裝了MySQL數據庫可以測試test2020/date的url是否能返回結果

數據庫只有有下面的數據就可以

python開發web服務的方法是什么

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

python開發web服務的方法是什么

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

“python開發web服務的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

许昌县| 通道| 鞍山市| 晋江市| 竹山县| 芜湖县| 余姚市| 墨竹工卡县| 曲沃县| 永顺县| 泾源县| 金山区| 新乡市| 年辖:市辖区| 彰化市| 枣庄市| 囊谦县| 霍州市| 泰安市| 金堂县| 鹤庆县| 肃北| 和政县| 拉孜县| 西和县| 梁河县| 廉江市| 青阳县| 柳河县| 桃园县| 马关县| 象山县| 观塘区| 项城市| 门头沟区| 贵阳市| 文成县| 库车县| 鸡西市| 勐海县| 石景山区|