在 Ubuntu 上调试 sqladmin(通常指基于 Python 的 SQLAdmin,或某些 Web 管理工具)错误,可以按下面系统化的步骤来定位和解决问题。
先明确环境,不同场景调试方式不同:
pip show sqladmin
which sqladmin
如果是 Web 页面报错:
在 Ubuntu 终端运行服务时,不要后台运行,直接前台启动看日志:
uvicorn main:app --reload
或:
python main.py
观察输出中的:
TracebackSQLAlchemy 错误KeyError / AttributeError错误示例:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError)
调试:
psql -h localhost -U user -d dbname
或 MySQL:
mysql -u user -p -h localhost
检查:
sudo systemctl status postgresql
sudo systemctl status mysql
FastAPI 示例:
from sqladmin import Admin
admin = Admin(app, engine)
检查:
/admin 是否可访问app 初始化之后挂载错误:
No model registered
解决:
class UserAdmin(ModelView, model=User):
pass
admin.add_view(UserAdmin)
如果你加了登录:
admin = Admin(app, engine, authentication_backend=...)
调试:
app = FastAPI(debug=True)
import logging
logging.basicConfig()
logging.getLogger("sqlalchemy.engine").setLevel(logging.INFO)
可以看到真实 SQL。
sudo lsof -i:8000
sudo ufw status
python -V
pip list | grep sqladmin
from fastapi import FastAPI
from sqladmin import Admin, ModelView
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base
engine = create_engine("sqlite:///test.db")
Base = declarative_base()
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String)
Base.metadata.create_all(engine)
app = FastAPI()
admin = Admin(app, engine)
class UserAdmin(ModelView, model=User):
pass
admin.add_view(UserAdmin)
请补充以下信息,我可以精准帮你:
这样我能直接定位问题。