函数未在 python 中执行

Function not getting executed in python

我下面有 2 个函数(recharge_list and sms_list) Server() class

import os
import json
import requests
import cherrypy
import ConfigParser
from bs4 import BeautifulSoup

class Server():

    @cherrypy.expose
    def index(self):

        return "Seems Like You're Lost :D"


    @cherrypy.expose
    def recharge_list(self,carrier, state):
        details_array=[]
        small_details_array=[]
        price_cell_array=[]
        lst = []
        url = "link{}/{}".format(carrier,state)
        try:
            if self.t_arr.get(url) is not None:
                return json.dumps({'data': self.t_arr[url]})
        except AttributeError:
            self.t_arr = {}
        r  = requests.get(url)
        data = r.text
        soup = BeautifulSoup(data,"html.parser")
        table = soup.find('table',{'class':'table'})
        s=""
        detailtext = table.findAll('div',{'class':'detailtext'})


        for det in detailtext:
            details_array.append(det.text)

        smalldetails = table.findAll('div',{'style':'padding-top:5px'})

        for smallDet in smalldetails:
            small_details_array.append(smallDet.text);


        price_cells = table.findAll('td', {'class': 'pricecell'})
        for price_cell in price_cells:
            price_cell_array.append(price_cell.text)

        for i in range(len(details_array)):
            d_arr = {}
            d_arr['detail']=details_array[i]
            temp = small_details_array[i].split('\n')
            d_arr['talktime'] = temp[1] 
            d_arr['keyword']=temp[3]
            tempnew = price_cell_array[i].split('\n')
            d_arr['price'] = tempnew[1]
            d_arr['validity'] = tempnew[3]
            # global list
            lst.append(d_arr)
        self.t_arr[url] = lst
        return json.dumps({'data': self.t_arr[url]})

    @cherrypy.expose
    def sms_list(self,carrier, state):
        details_array=[]
        price_cell_array=[]
        lst = []
        url = "link/{}/{}".format(carrier,state)
        try:
            if self.t_arr.get(url) is not None:
                return json.dumps({'data': self.t_arr[url]})
        except AttributeError:
            self.t_arr = {}
        r  = requests.get(url)
        data = r.text
        soup = BeautifulSoup(data,"html.parser")
        table = soup.find('div',{'id':'SMS'})
        table2 = table.find('table',{'class':'table'})
        print(table2)
        s=""
        detailtext = table2.findAll('div',{'class':'detailtext'})


        for det in detailtext:
            details_array.append(det.text)

        smalldetails = table2.findAll('div',{'style':'padding-top:5px'})


        price_cells = table.findAll('td', {'class': 'pricecell'})
        for price_cell in price_cells:
            price_cell_array.append(price_cell.text)

        for i in range(len(details_array)):
            d_arr = {}
            d_arr['detail']=details_array[i]
            tempnew = price_cell_array[i].split('\n')
            d_arr['price'] = tempnew[1]
            d_arr['validity'] = tempnew[3]
            # global list
            lst.append(d_arr)
        self.t_arr[url] = lst
        return json.dumps({'data': self.t_arr[url]})

if __name__ == '__main__':
    ''' Setting up the Server with Specified Configuration'''

    cherrypy.config.update({'server.socket_host': '0.0.0.0',})
    cherrypy.config.update({'server.socket_port': int(os.environ.get('PORT', '5000')),})

cherrypy.quickstart(Server())

问题是,当我 运行 我的服务器与 recharge_list 它工作时,但随后我必须从终端终止我的服务器并重新启动服务器以执行 sms_list 函数。

根据我的理解,Server class 创建的对象只能执行第一个调用的函数。

我应该在我的代码中编辑什么,以便我可以在不终止服务器的情况下执行功能。

By my understanding the object once created by Server class is able to execute only the first called function.

事实并非如此。每次提供 HTTP 请求时,Web 服务器都会调用与该请求的 URL 关联的函数。

What should I edit in my code such that I can execute the functions without terminating the server.

sms_list中(不是recharge_list中),将t_arr的每个实例替换为t_sms_arr