AttributeError: тип объекта «Клиент» не имеет атрибута «запрос» - PullRequest
0 голосов
/ 05 июня 2018

Это мой первый проект с использованием Python.

У меня возникла проблема при отображении значений в моей таблице.

AttributeError: тип объекта «Клиент» имеетнет атрибута 'query'

from flask import Flask, render_template, request, url_for, redirect
import os
from sqlalchemy import *
from sqlalchemy import create_engine, ForeignKey
from sqlalchemy import Column, Date, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref,sessionmaker


engine = create_engine('sqlite:///banco.db', echo=True)
db = declarative_base()


class Cliente(db):
    __tablename__ = 'cliente'

    _idCliente = Column(Integer, primary_key =True, autoincrement = True)
    nmCliente = Column (String)

    def __init__ (self, nmCliente):
        self.nmCliente = nmCliente

db.metadata.create_all(engine)

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('home.html')


@app.route("/cadastros/cliente")
def cadastroCliente():
    return render_template ("cadastroCliente.html")

@app.route("/cadastrar/cliente", methods=['GET','POST'])
def cadastrarCliente():
    if request.method == "POST":
        nmCliente = request.form.get("nmCliente")

        if nmCliente:
            c = Cliente(nmCliente)
            db.session.add(c)
            db.session.commit()

    return redirect(url_for("cadastroCliente"))

@app.route("/consulta/cliente")
def consulta():
    cliente = Cliente.query.all()
    return render_template("consultaClientes.html", cliente = cliente)

if __name__ == '__main__':
    app.run(debug=True)

Python 2.7, что я должен изменить?Я следовал некоторым учебникам, и это сработало

1 Ответ

0 голосов
/ 05 июня 2018

Вы запрашиваете так при использовании Flask-SQLAlchemy (из импортирования flask_sqlalchemy SQLAlchemy)

В вашем коде вам нужно будет использовать сессию, потому что вы используете SQLAlchemy.Поэтому импортируйте создатель сессий следующим образом

from sqlalchemy.orm import sessionmaker

Затем ниже engine = create_engine('sqlite:///banco.db', echo=True)

Session = sessionmaker(bind=engine)
session = Session()

Затем выполните запрос, используя сессию

cliente = session.query(Cliente).all()

Вы можете увидеть плюсы иминусы использования Flask-SQLAlchemy (более интегрированный с flask) здесь и посмотрите, хотите ли вы пойти с ним

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...