我發現CherryPy的舊版本的很多例子,但他們每個都引用了在cherrypy 3.2.2中找不到的導入模塊。 Looking in the documentation,我找到了一個事實,即內置了storage_type
('ram','file','postgresql')之一。如何在CherryPy 3.2.2的MySQL中存儲網絡會話?
0
A
回答
3
一開始,你可以在
https://github.com/3kwa/cherrys
看看這傢伙怎麼寫自己的session類,並覆蓋一些方法。他爲redis而不是MySQL做。你會爲MySQL編寫方法。一個非常類似的類中已經存在的CherryPy在「cherrpy/lib目錄/ sessions.py」:
class PostgresqlSession(Session)
這是非常相似的,你想要什麼。我會說,採取從「3kwa」實現的方法,而不是他的RedisSession類從「cherrpy/lib/sessions.py」複製PostgresqlSession類,並更改爲匹配正確的MySQL語法。
一個可能的路徑可能是:
下載從上面的鏈接「cherrys.py」,並重新命名爲「mysqlsession.py」。用「cherrpy/lib/sessions.py」中的「PostgresqlSession(Session)」覆蓋「RedisSessions(Session)」,並重命名爲「MySQLSession(Session)」。一定要
locks = {}
def acquire_lock(self):
"""Acquire an exclusive lock on the currently-loaded session data."""
self.locked = True
self.locks.setdefault(self.id, threading.RLock()).acquire()
def release_lock(self):
"""Release the lock on the currently-loaded session data."""
self.locks[self.id].release()
self.locked = False
添加到您的新的「MySQLSession」級(就像它在RedisSession(會議)來完成。改變PostgreSQL的語法搭配MySQL的語法(這不應該是困難的)。把「mysqlsession.py」的項目目錄和進口某處的應用與
import mysqlsession
,並在你的應用程序初始化使用
cherrypy.lib.sessions.MySQLSession = mysqlsession.MySQLSession
,在配置
tools.sessions.storage_type : 'mysql'
和像「PostgreSQL」類一樣的參數(如主機,端口等)。
我可能一直都是錯的。但這是我將如何解決這個問題。
相關問題
- 1. 在mysql中存儲會話
- 2. 如何使GraphAPI登錄會話在網絡會話中生存
- 3. favicon.ico和CherryPy 3.2.2
- 4. 在mysql中存儲curl會話cookie
- 5. 如何在會話中存儲值php
- 6. 如何在redis中存儲JSF會話?
- 7. PHP網絡會話
- 8. 如何在mysql中存儲註冊和訪客會話登錄
- 9. CherryPy會話與Postgresql
- 10. 如何存儲會話
- 11. AngularJS如何存儲會話
- 12. 在會話中存儲UnityManager
- 13. wp_get_referer在會話中存儲
- 14. Python網絡爬行和存儲到MySQL
- 15. 存儲在會話
- 16. 跨網絡的PHP會話
- 17. Mysql存儲網絡管理權限
- 18. 在cherrypy應用程序中測試會話變量和db存儲
- 19. 如何存儲find_by_sql_results在會話變量
- 20. 存儲會話
- 21. 存儲會話
- 22. 如何增加會話存儲中存儲的值
- 23. 如何讓主存儲庫存儲在本地網絡上?
- 24. 如何將會話數據存儲在本地HTML網站上?
- 25. Java SE和網絡會話
- 26. Ruby on Rails會話存儲 - 如何*不*在會話存儲中存儲某些字段?
- 27. 如何在asp.net網頁中存儲網絡文件夾位置?
- 28. 網絡農場中的jsf會話
- 29. mysql pdo交易和會話存儲
- 30. PHP MYSQL存儲會話數據,質疑