Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] AttributeError: string

Ainda não consegui rodar o banco junto com o programa.

MEU CODIGO:

ponte com as tabelas

class Jogos(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    nome = db.Column(db.string(50), nullable=False)
    categoria = db.Column(db.string(40), nullable=False)
    console = db.Column(db.string(20), nullable=False)

    def __repr__(self):
        return '<Name %r>' % self.name


class Usuarios(db.Model):
    nickname = db.Column(db.String(8), primary_key=True)
    nome = db.Column(db.string(20), nullable=False)
    senha = db.Column(db.string(100), nullable=False)

    def __repr__(self):
        return '<Name %r>' % self.name

ERRO:

C:\Users\samuel\PycharmProjects\jogoteca\venv\Scripts\python.exe C:\Users\samuel\PycharmProjects\jogoteca\jogoteca.py 
Traceback (most recent call last):
  File "C:\Users\samuel\PycharmProjects\jogoteca\jogoteca.py", line 45, in <module>
    class Jogos(db.Model):
  File "C:\Users\samuel\PycharmProjects\jogoteca\jogoteca.py", line 47, in Jogos
    nome = db.Column(db.string(50), nullable=False)
  File "C:\Users\samuel\PycharmProjects\jogoteca\venv\lib\site-packages\flask_sqlalchemy\extension.py", line 1005, in __getattr__
    raise AttributeError(name)
AttributeError: string


Process finished with exit code 1
1 resposta
solução!

Olá, Samuel. Tudo belezinha?

Esse problema provavelmente está acontecendo devido a um erro de digitação. A classe db não possui um atributo chamado string. O correto seria utilizar String com a primeira letra maiúscula. Assim, para corrigir o erro, basta trocar todas as ocorrências de db.string para db.String.

O código ficaria assim:

class Jogos(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    nome = db.Column(db.String(50), nullable=False)
    categoria = db.Column(db.String(40), nullable=False)
    console = db.Column(db.String(20), nullable=False)

    def __repr__(self):
        return '<Name %r>' % self.name


class Usuarios(db.Model):
    nickname = db.Column(db.String(8), primary_key=True)
    nome = db.Column(db.String(20), nullable=False)
    senha = db.Column(db.String(100), nullable=False)

    def __repr__(self):
        return '<Name %r>' % self.name

Espero ter ajudado. Qualquer outra dúvida estou a disposição.

Abraços. Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!