簡體   English   中英

如何在cherrypy中使用全局變量?

[英]How do I use a global variable in cherrypy?

我需要訪問一個全局變量,使其狀態保持不同的服務器請求。

在此示例中,全局變量是r並且在每個請求時遞增。

我怎樣才能讓r全球化?

import cherrypy
import urllib
class Root(object):
    @cherrypy.expose

    def index(self,  **params):

        jsondict = [('foo', '1'), ('fo', '2')]
        p = urllib.urlencode(jsondict)
        if r!=1
          r=r+1
          raise cherrypy.HTTPRedirect("/index?" + p)
        return "hi"
cherrypy.config.update({

                'server.socketPort': 8080

        })
cherrypy.quickstart(Root())
if __name__ == '__main__':
    r=1

要訪問全局變量,必須使用global關鍵字,后跟變量名稱。 但是,如果r將僅在Root類中使用,我建議您將其聲明為類變量:

class Root(object):
    r = 1
    @cherrypy.expose
    def index(self,  **params):
        #...
        if Root.r != 1:
            Root.r += 1
        #...

我有同樣的問題。 它在實現我的程序可以訪問導入庫的成員變量后得到解決。

首先,創建一個名為myglobals.py的文件並將其放入其中

r=0
visitors = 0

然后在你的服務器中:

import myglobals  
class Root(object):
        @cherrypy.expose
        def index(self,  **params):
            #...
            if myglobals.r != 1:
                myglobals.r += 1
            #...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM