-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Server Side Session with Redis Fails to Serialize LazyString Objects #29362
Comments
Hey @weigosw! 👋 I'm here to help you with any bugs, questions, and contributing to the project! To resolve the error "Encoding objects of type LazyString is unsupported" when configuring Superset to use server-side sessions with Redis, you need to ensure that the from flask_session import RedisSessionInterface
from redis import Redis
SESSION_TYPE = "redis"
SESSION_REDIS = Redis(host="localhost", port=6379, db=0)
SESSION_SERVER_SIDE = True
SESSION_INTERFACE = RedisSessionInterface(SESSION_REDIS) Make sure you have the pip install flask-session redis This configuration sets up Redis as the backend for server-side sessions and should help in handling |
Hi Thanks for help, but i can't import RedisSessionInterface |
To resolve the "Encoding objects of type LazyString is unsupported" error without using Here is an example of how you can integrate this into your configuration:
import json
from redis import Redis
from flask import Flask
from flask_session import Session
from werkzeug.middleware.proxy_fix import ProxyFix
from flask_babel import Babel
from flask_caching import Cache
from flask_appbuilder import AppBuilder, SQLA
from flask_appbuilder.security.manager import AUTH_DB
from flask_appbuilder.security.sqla.manager import SecurityManager
from flask_appbuilder.security.sqla.models import User
from flask_appbuilder.security.views import UserDBModelView
from flask_appbuilder.views import ModelView
from flask_appbuilder import ModelRestApi
from flask_appbuilder.api import BaseApi, expose, rison, protect, safe
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder.models.sqla.filters import FilterContains
from flask_appbuilder.models.sqla.filters import FilterGreater
from flask_appbuilder.models.sqla.filters import FilterSmaller
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.filters import FilterEqual
from flask_appbuilder.models.sqla.filters import FilterStartsWith
from flask_appbuilder
<!-- Dosu Comment Footer -->
*To continue talking to [Dosu](https://dosu.dev), mention @dosu.* |
I printed the Session object with encoding errors, the problem should be related to text leading by 'l' {
'_permanent': True,
'locale': 'zh',
'_fresh': True,
'csrf_token': 'cdecffb548f609b2b38eeeaf65ace448e9f847da',
'_user_id': '2',
'_id': 'd45ed5036f66c80fe6791e116e9c0f31e26c8489ea5acb8b4ea42d274e1be740c93d6f82573d2185896865f164a744bd5394c79c5a791fd08175bb7810baa8e1',
'page_history': ['http://localhost:8088/exceltodatabaseview/form'],
'_flashes': [
(
'danger',
l'无法将Excel文件 "Efficiency-Data-0625.xlsx" 上传到数据库 "Efficiency" 中的表 "Requirements" 内。错误消息:Table \'Requirements\' already exists.'
)
]
} |
Bug description
When configuring Superset to use server-side sessions with Redis, an error occurs during the serialization of session data. Specifically, the error message indicates that encoding objects of type LazyString is unsupported. This issue arises when attempting to upload an Excel file, but it may also affect other functionalities that involve session data.
How to reproduce the bug
superset_config.py
:Expected Behavior:
The session data should be serialized and stored in Redis without errors, and the Excel file should be uploaded successfully.
Actual Behavior:
The following error is logged:
Screenshots/recordings
Superset version
4.0.1
Python version
3.9
Node version
Not applicable
Browser
Chrome
Additional context
superset_config.py
Checklist
The text was updated successfully, but these errors were encountered: