我是flask Blueprints的新手,我收到错误AttributeError:' function'对象没有属性' query'。我很确定我错过了一些简单的事情。我相信我的错误来自views.py文件,并且没有访问该数据库,但我不确定原因。 '从项目导入db' 应该这样做。我想。
感谢您的帮助
这是代码。
app.py
from project import app
if __name__ == 'main__':
app.run(debug=True)
__初始化__。PY
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_pyfile('config.py')
db = SQLALchemy
from project.ContentType.views import ContentType_BP
app.register_blueprint(ContentType_BP, url_prefix='/ContentType')
@app.route('/')
def index():
return render_template('index.html')
views.py
from flask import Blueprint, render_template
from project.ContentType.forms import ContentTypeForm
from project.models import ContentType
from project import db
ContentType_BP = Blueprint('ContentType',__name__,
template_folder = 'templates')
@ContentType_BP.route('/ContentType', methods=['GET','POST'])
def ContentType():
form = ContentTypeForm()
results = ContentType.query.all() ## this is were my error occurs
return render_template('contenttype/contenttype.html',
form=form, results=results)
Models.py
from project import db
class ContentType(db.Model):
id = db.Column(db.Integer, primary_key=True)
ct1 = db.Column(db.Integer)
ct2 = db.Column(db.Integer)
以下是目录树。我认为它可能会派上用场。 ' - '表示Main
的子目录Main
app.py
__init__.py
--project
models.py
--ContentType
__init__.py
--static
--templates
--ContentType
contenttype.html
答案 0 :(得分:0)
看起来您正在从db模型类中隐藏ContentType
,因为您将它用作视图的名称。
尝试更改视图名称:
def ContentType():
类似于:
def content_type():
并改用该名称。