这是我的第一个使用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,我应该改变什么? 我按照一些教程进行了操作
答案 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的优缺点,看看您是否愿意使用它