日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python Web項目Cherrypy使用方法鏡像

瀏覽:24日期:2022-07-06 11:07:27

1、介紹

搭建Java Web項目,需要Tomcat服務器才能進行。而搭建Python Web項目,因為cherrypy自帶服務器,所以只需要下載該模塊就能進行Web項目開發。

2、最基本用法

實現功能:訪問html頁面,點擊按鈕后接收后臺py返回的值

html頁面(test_cherry.html)

<!DOCTYPE html><html><head> <meta charset='utf-8'> <title>Test Cherry</title> <script src='https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js'></script></head><body> <h1>Test Cherry</h1> <p id='p1'></p> <button type='button' onclick='callHelloWorld()'>hello_world</button> <script> function callHelloWorld() { $.get(’/hello_world’, function (data, status) {alert(’data:’ + data)alert(’status:’ + status) }) } </script></body></html>

編寫腳本py

# -*- encoding=utf-8 -*-import cherrypyclass TestCherry(): @cherrypy.expose() # 保證html能請求到該函數 def hello_world(self): print(’Hello’) return ’Hello World’ @cherrypy.expose() # 保證html能請求到該函數http://127.0.0.1:8080/index def index(self): # 默認頁為test_cherry.html return open(u’test_cherry.html’)cherrypy.quickstart(TestCherry(), ’/’)

運行結果

[27/May/2020:09:04:42] ENGINE Listening for SIGTERM.[27/May/2020:09:04:42] ENGINE Bus STARTINGCherryPy Checker:The Application mounted at ’’ has an empty config.

[27/May/2020:09:04:42] ENGINE Set handler for console events.[27/May/2020:09:04:42] ENGINE Started monitor thread ’Autoreloader’.[27/May/2020:09:04:42] ENGINE Serving on http://127.0.0.1:8080[27/May/2020:09:04:42] ENGINE Bus STARTED

能看到啟動的路徑為127.0.0.1::8080端口號是8080

The Application mounted at ’’ has an empty config.表示沒有自己配置,使用默認配置,如果需要可自己配置

運行py腳本后,打開瀏覽器輸入http://127.0.0.1:8080/或者http://127.0.0.1:8080/index就可以看到test_cheery.html

Python Web項目Cherrypy使用方法鏡像

點擊hello_world按鈕,就會訪問py中的hello_world函數

Python Web項目Cherrypy使用方法鏡像

解釋:test_cherry.html中

function callHelloWorld() {

$.get(’/hello_world’, function (data, status) {

alert(’data:’ + data)

alert(’status:’ + status)

})}

1)請求/hello_world需要與py中的函數名一致

2)默認端口是8080,如果8080被占用,可以重新配置

cherrypy.quickstart(TestCherry(), ’/’)可以接收配置參數

若多次調試出現portend.Timeout: Port 8080 not free on 127.0.0.1.錯誤

是因為8080端口被占用了,如果你第一次調試時成功了,則你可以打開任務管理器把python進程停掉,8080就被釋放了

3、導入webbrowser進行調試開發(可以自動打開瀏覽器,輸入網址)

py代碼

# -*- encoding=utf-8 -*-import cherrypyimport webbrowserclass TestCherry(): @cherrypy.expose() # 保證html能請求到該函數 def hello_world(self): print(’Hello’) return ’Hello World’ @cherrypy.expose() # 保證html能請求到該函數http://127.0.0.1:8080/index def index(self): # 默認頁為test_cherry.html return open(u’test_cherry.html’)def auto_open(): webbrowser.open(’http://127.0.0.1:8080/’)cherrypy.engine.subscribe(’start’, auto_open) #啟動前每次都調用auto_open函數cherrypy.quickstart(TestCherry(), ’/’)

這樣運行py就能自動打開網頁了,每次改變html代碼如果沒達到預期效果,可以試一試清理瀏覽器緩存!!!

4、帶參數的請求

實現傳入參數并接收返回顯示在html上

py中添加一個函數(get_parameters)

# -*- encoding=utf-8 -*-import cherrypyimport webbrowserclass TestCherry(): @cherrypy.expose() # 保證html能請求到該函數 def hello_world(self): print(’Hello’) return ’Hello World’ @cherrypy.expose() # 保證html能請求到該函數http://127.0.0.1:8080/index def index(self): # 默認頁為test_cherry.html return open(u’test_cherry.html’) @cherrypy.expose() def get_parameters(self, name, age, **kwargs): print(’name:{}’.format(name)) print(’age:{}’.format(age)) print(’kwargs:{}’.format(kwargs)) return ’Get parameters success’def auto_open(): webbrowser.open(’http://127.0.0.1:8080/’)cherrypy.engine.subscribe(’start’, auto_open) # 啟動前每次都調用auto_open函數cherrypy.quickstart(TestCherry(), ’/’)

html中添加一個新按鈕和對應按鈕事件

<!DOCTYPE html><html><head> <meta charset='utf-8'> <title>Test Cherry</title> <script src='https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js'></script></head><body> <h1>Test Cherry</h1> <p id='p1'></p> <button type='button' onclick='callHelloWorld()'>hello_world</button> <button type='button' id='postForParameters'>get_parameters</button> <p id='getReturn'></p> <script> function callHelloWorld() { $.get(’/hello_world’, function (data, status) {alert(’data:’ + data)alert(’status:’ + status) }) } $(document).ready(function () { $(’#postForParameters’).click(function () {alert(’pst’)$.post(’/get_parameters’, { name: ’TXT’, age: 99, other: ’123456’ }, function (data, status) { if (status === ’success’) { $(’#getReturn’).text(data) } }) }) }) </script></body></html>

運行結果

點擊get_parameters按鈕后

D:Python37_32python.exe D:/B_CODE/Python/WebDemo/test_cherry.py[27/May/2020:09:58:40] ENGINE Listening for SIGTERM.[27/May/2020:09:58:40] ENGINE Bus STARTINGCherryPy Checker:The Application mounted at ’’ has an empty config.

[27/May/2020:09:58:40] ENGINE Set handler for console events.[27/May/2020:09:58:40] ENGINE Started monitor thread ’Autoreloader’.[27/May/2020:09:58:41] ENGINE Serving on http://127.0.0.1:8080[27/May/2020:09:58:41] ENGINE Bus STARTED127.0.0.1 - - [27/May/2020:09:58:41] 'GET / HTTP/1.1' 200 1107 '' 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'127.0.0.1 - - [27/May/2020:09:59:37] 'GET / HTTP/1.1' 200 1136 '' 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'127.0.0.1 - - [27/May/2020:09:59:37] 'GET /favicon.ico HTTP/1.1' 200 1406 'http://127.0.0.1:8080/' 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'127.0.0.1 - - [27/May/2020:10:02:50] 'GET / HTTP/1.1' 200 1208 '' 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'127.0.0.1 - - [27/May/2020:10:02:50] 'GET /favicon.ico HTTP/1.1' 200 1406 'http://127.0.0.1:8080/' 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'name:TXTage:99kwargs:{’other’: ’123456’}127.0.0.1 - - [27/May/2020:10:02:54] 'POST /get_parameters HTTP/1.1' 200 22 'http://127.0.0.1:8080/' 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'

能看出傳入的參數已經打印出來了

Python Web項目Cherrypy使用方法鏡像

5、config配置以及對應url(追加,所以代碼不同了)

# -*- encoding=utf-8 -*-import jsonimport osimport webbrowserimport cherrypyclass Service(object): def __init__(self, port): self.media_folder = os.path.abspath(os.path.join(os.getcwd(), ’media’)) self.host = ’0.0.0.0’ self.port = int(port) self.index_html = ’index.html’ pass @cherrypy.expose() def index(self): return open(os.path.join(self.media_folder, self.index_html), ’rb’) def auto_open(self): webbrowser.open(’http://127.0.0.1:{}/’.format(self.port)) @cherrypy.expose() def return_info(self, sn): cherrypy.response.headers[’Content-Type’] = ’application/json’ cherrypy.response.headers[’Access-Control-Allow-Origin’] = ’*’ my_dict = {’aaa’:’123’}# 或者用list[]可保證有序 return json.dumps(my_dict).encode(’utf-8’)def main(): service = Service(8090) conf = { ’global’: { # 主機0.0.0.0表示可以使用本機IP訪問,如http://10.190.20.72:8090,可部署給別人訪問 # 否則只可以用http://127.0.0.1:8090 ’server.socket_host’: service.host, # 端口號 ’server.socket_port’: service.port, # 當代碼變動時,是否自動重啟服務,True==是,False==否 # 設為True時,當該PY代碼改變,服務會重啟 ’engine.autoreload.on’: False }, # 根目錄設置 ’/’: { ’tools.staticdir.on’: True, ’tools.staticdir.dir’: service.media_folder }, ’/static’: { ’tools.staticdir.on’: True, # 可以這么訪問http://127.0.0.1:8090/static加上你的資源,例如 # http://127.0.0.1:8090/static/js/jquery-1.11.3.min.js ’tools.staticdir.dir’: service.media_folder }, } # 可以使用該種寫法代替config配置 # cherrypy.config.update( # {’server.socket_port’: service.port}) # cherrypy.config.update( # {’server.thread_pool’: int(service.thread_pool_count)}) # 當代碼變動時,是否重啟服務,True==是,False==否 # cherrypy.config.update({’engine.autoreload.on’: False}) # 支持http://10.190.20.72:8080/形式 # cherrypy.server.socket_host = ’0.0.0.0’ # 啟動時調用函數 cherrypy.engine.subscribe(’start’, service.auto_open) cherrypy.quickstart(service, ’/’, conf)if __name__ == ’__main__’: pass main()

工程文件夾

Python Web項目Cherrypy使用方法鏡像

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
男女男精品网站| 成人一区而且| 日韩欧美精品| 国产欧洲在线| 国产精品2区| 青草国产精品| 国产欧美在线| 亚洲精品韩国| 亚洲日产av中文字幕| 久久亚洲二区| 美日韩精品视频| 一区二区三区网站| 日韩在线成人| 欧美一区=区三区| 91午夜精品| 国产日韩一区二区三区在线| 91麻豆精品激情在线观看最新| 日韩国产在线观看| 国产精品日韩精品在线播放| 欧美精品观看| 精品资源在线| 日韩中文在线电影| 久久男人av资源站| 久久久久网站| 视频一区视频二区中文字幕| 亚洲精品欧洲| 国产午夜久久av| 麻豆精品视频在线| 成人精品视频| 欧美精品一二| 亚洲毛片在线免费| 国产精品久久国产愉拍| 精品久久久中文字幕| 国产在线看片免费视频在线观看| 国产精品不卡| 国户精品久久久久久久久久久不卡| 99国产精品久久久久久久成人热 | 欧美一级全黄| 福利一区二区三区视频在线观看| 999久久久精品国产| 国产精品毛片| 国产精品午夜av| 九九精品调教| 性色一区二区| 欧美aⅴ一区二区三区视频| 国产拍在线视频| 亚洲资源av| 国产精品qvod| 亚洲精品小说| 国产精品主播| 色一区二区三区四区| 国户精品久久久久久久久久久不卡| 四虎精品一区二区免费| 国产精品高潮呻吟久久久久| 色爱av综合网| 免费黄网站欧美| 麻豆精品99| 国产精品毛片| 精品丝袜久久| 免播放器亚洲一区| 电影91久久久| 美女黄网久久| 麻豆精品在线| 另类亚洲自拍| 国内精品亚洲| 丝瓜av网站精品一区二区| 欧美色综合网| 91精品啪在线观看国产18 | 中文一区在线| 国产精品www.| 成人av二区| 国产精品99久久免费| 999国产精品视频| 国产香蕉精品| 亚洲一区日韩在线| 国产 日韩 欧美 综合 一区| 欧美在线综合| 高清av不卡| 免费成人在线观看| 9999国产精品| 日本va欧美va瓶| 蜜臀av性久久久久蜜臀aⅴ流畅| 美女毛片一区二区三区四区最新中文字幕亚洲 | 日韩国产精品久久久| 亚洲v在线看| 久久精品国产福利| 亚洲精品黄色| 99久久夜色精品国产亚洲1000部| 久热re这里精品视频在线6| 国产一区二区精品福利地址| 日韩精品免费一区二区夜夜嗨| 欧美日韩免费观看视频| 91麻豆精品| 日韩制服丝袜先锋影音| 欧美亚洲日本精品| 国产欧美自拍| 综合激情视频| 免费视频一区三区| 国产在线看片免费视频在线观看| 欧美亚洲一区二区三区| 天堂成人免费av电影一区| 神马日本精品| 成人日韩av| 亚洲精品观看| 99成人在线| 伊人久久大香线蕉av不卡| 色婷婷亚洲mv天堂mv在影片| 国产精品免费99久久久| 精品视频网站| 国产精品乱战久久久| 亚洲美女91| 亚洲免费观看高清完整版在线观| 欧美日韩四区| 亚洲第一精品影视| 日韩欧美一区二区三区免费观看| 美女视频黄 久久| 国产欧美三级| 国产欧美一区二区三区精品观看 | 一区二区电影在线观看| 欧美精品羞羞答答| 91精品精品| 欧美亚洲国产激情| 久久国产电影| 亚洲1234区| 青青久久av| 日韩大片免费观看| 国产在线一区不卡| 国产一区二区三区四区| 你懂的亚洲视频| 久久久免费人体| 日韩av电影一区| 91精品国产一区二区在线观看| 日本中文字幕一区二区| 久久国产99| 亚洲视频国产精品| 亚洲精选91| 亚洲深夜福利在线观看| 视频一区二区国产| 亚洲一区欧美激情| 久久亚洲风情| 日韩一区二区三区精品| 亚洲91在线| 欧美综合精品| 美日韩一区二区三区| 精品丝袜久久| 精品国产乱码久久久| 精品国产鲁一鲁****| 在线看片国产福利你懂的| 中文字幕在线视频久| 久久久久午夜电影| 黄色精品网站| 日韩不卡一区二区三区| 欧美激情亚洲| 精品国产一区二区三区av片| 免费日韩成人| 黄色日韩精品| 精品国产不卡一区二区| 国产不卡人人| 国产一区亚洲| 日韩午夜在线| 日韩在线卡一卡二| 日本在线视频一区二区| 国产日韩一区二区三区在线| 久久精品国产福利| 日韩在线免费| 久久亚洲美女| 国产亚洲字幕| 色欧美自拍视频| 亚洲综合三区| 日韩不卡在线观看日韩不卡视频| 久久97视频| 亚洲高清二区| 亚洲精品欧美| www在线观看黄色| 国产农村妇女精品一二区| 最近国产精品视频| 国产麻豆一区二区三区精品视频| 成人台湾亚洲精品一区二区| 婷婷激情图片久久| 亚洲精品自拍| 欧美天堂视频| 久久亚洲色图| 久久只有精品| 亚洲深夜影院| 国产精品亚洲综合色区韩国| 日韩一区二区三区在线免费观看| 婷婷综合网站| 欧美亚洲tv| 久久精品国产68国产精品亚洲| 男人的天堂亚洲一区| 久久国产人妖系列| 日韩在线免费| 日韩国产精品久久久| 日韩免费一区| 亚洲午夜国产成人| 日韩伦理一区| 日本综合视频| 福利在线免费视频| 日韩在线麻豆| 久久久一二三|