AttributeError:类型对象'Cliente'没有属性'query'

时间:2018-06-05 12:57:16

标签: python flask sqlalchemy

这是我的第一个使用Python的项目。

我在表格中显示值时遇到问题。

  

AttributeError:类型对象'客户'没有属性'查询'

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 :(得分:0)

使用Flask-SQLAlchemy(来自于flask_sqlalchemy import SQLAlchemy)时,您可以这样查询

在您的代码中,您将需要使用session,因为您使用的是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(与烧瓶更加集成)here的优缺点,看看您是否愿意使用它