• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python Web项目Cherrypy使用方法镜像

python 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

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 cherrypy


class 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 STARTING
CherryPy 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

点击hello_world按钮,就会访问py中的hello_world函数

解释: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 cherrypy
import we<div>本文来源gaodai.ma#com搞##代!^码7网</div>bbrowser


class 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(), '/')

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python Web项目Cherrypy使用方法镜像

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址