저는 웹 개발에 익숙하지 않습니다. cherrypy를 처음 사용하기.CherryPy에서 다른 스레드를 만드는 방법은 무엇입니까?
import cherrypy
import src.main
class Interface:
def __init__(self):
self.mypf = src.main.pf()
commonhtmlString = """<form method="get" action="generate">
<input type="text" value="" name="l" />
<input type="text" value="" name="r" />
<button type="submit">Give it now!</button>
</form>"""
@cherrypy.expose
def index(self):
return Interface.commonhtmlString
@cherrypy.expose
def generate(self, l, r):
self.mypf = src.main.pf()
self.mypf.getLocalityInfo(l, r)
return Interface.commonhtmlString + self.mypf.printC()
@cherrypy.expose
def explore(self, c):
return Interface.commonhtmlString + self.mypf.printIC(c)
cherrypy.quickstart(Interface())
위의 코드는 정상적으로 작동합니다. 그러나 새 브라우저 또는 새 탭을 열고 매개 변수를 변경하고 새 출력을 생성하면 열려있는 모든 링크와 오류가 발생합니다.
Exm. 내가 l = x r = xx라고 입력하면 xxx라는 결과를 얻습니다. 이제 다른 탭에서 URL을 열고 l = y r = yy를 입력하면 결과가 yyy가됩니다. 이제는 이전 탭이 xxx에 유지되지 않습니다. 따라서 xxx에서 일부 링크를 클릭하면 yyy 해당 링크 나 오류가 발생합니다.
누군가가이 문제에 도움을 줄 수 있습니까? 외부 링크 나 개념을 설명하거나 제공 할 수 있습니다. 읽을 준비가되었습니다. 미리 감사드립니다.
어떤 링크를 참조하고 무엇이'pf'인지는 명확하지 않습니다. 대부분의 경우,'Interface' 인스턴스는 한 번만 생성되고 요청간에 데이터를 유지한다는 사실을 알지 못합니다. 전역 데이터에 대한 스레드 안전성을 보장해야합니다. 도움이되지 않으면 실행 가능한 코드로 질문을 편집하십시오. – jwalker