Я пытался добавить имя таблицы , но мне это не нужно. Я не нашел никого, кто использовал торнадо с этой ошибкой, но некоторые из них предложили мне создать базу данных. это не описано в документах по торнадо sqlalchemy.
import os
from tornado.ioloop import IOLoop
from tornado.web import Application, RequestHandler
from tornado_sqlalchemy import SQLAlchemy, SessionMixin
from sqlalchemy import Column, BigInteger, String
from tornado.options import define, options
define('port', default=80, help='port to listen on')
db = SQLAlchemy(url="sqlite:///db.sqlite")
class User(db.Model):
id = Column(BigInteger, primary_key=True)
username = Column(String(255), unique=True)
class IndexHandler(SessionMixin, RequestHandler):
def get(self):
count = self.session.query(User).count()
self.write('{} users so far!'.format(count))
class LoginHandler(SessionMixin, RequestHandler):
def get(self):
if self.get_secure_cookie("session"):
self.redirect("/") #todo alert logged in
pass
self.render("register.html")
def post(self):
name=self.get_body_argument("message")
query=self.session.query(User).filter(username=name).all()
print(query)
def main():
settings = dict(
template_path=os.path.join(os.path.dirname(__file__), "template"),
static_path=os.path.join(os.path.dirname(__file__), "static"),
debug=True,
cookie_secret="dgehhe874",
login_url="/login",
# xsrf_cookies=True,
)
app = Application(
(
(r'/', IndexHandler),
(r'/login', LoginHandler),
#(r'/signup', SignupHandler),
),
db=db,
**settings,
)
app.listen(options.port)
IOLoop.current().start()
if __name__=="__main__":
main()
Ниже приведена полная ошибка. Мне не очень помогает, поскольку я ничего не могу найти в Google. бла бла не знаю, что еще сказать, но мой вопрос в основном код.
Traceback (most recent call last):
File "app.py", line 13, in <module>
class User(db.Model):
File "/root/shop/lib/python3.7/site-packages/tornado_sqlalchemy/__init__.py", line 172, in __init__
super(BindMeta, cls).__init__(name, bases, d)
File "/root/shop/lib/python3.7/site-packages/sqlalchemy/ext/declarative/api.py", line 75, in __init__
_as_declarative(cls, classname, cls.__dict__)
File "/root/shop/lib/python3.7/site-packages/sqlalchemy/ext/declarative/base.py", line 131, in _as_declarative
_MapperConfig.setup_mapping(cls, classname, dict_)
File "/root/shop/lib/python3.7/site-packages/sqlalchemy/ext/declarative/base.py", line 160, in setup_mapping
cfg_cls(cls_, classname, dict_)
File "/root/shop/lib/python3.7/site-packages/sqlalchemy/ext/declarative/base.py", line 192, in __init__
self._setup_inheritance()
File "/root/shop/lib/python3.7/site-packages/sqlalchemy/ext/declarative/base.py", line 589, in _setup_inheritance
"table-mapped class." % cls
sqlalchemy.exc.InvalidRequestError: Class <class '__main__.User'> does not have a __table__ or __tablename__ specified and does not inherit from an existing table-mapped class.