我在看教学视频时跟着b站敲的代码,但是访问网页http://127.0.0.1:5000/article/query时报错为
AttributeError: 'NoneType' object has no attribute 'articles'
找了很久的资料还没有解决,刚开始学的flask框架,请教一下大家,感谢!!
以下是我的代码:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
HOSTNAME = "127.0.0.1"
PORT = 3306
USERNAME = "root"
PASSWORD = "123456"
DATABASE = "database_learn"
app.config['SQLALCHEMY_DATABASE_URI'] = (f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset"f"=utf8mb4")
db = SQLAlchemy(app)
# -------创建ORM模型-------
class User(db.Model):
__tablename__ = "user"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
username = db.Column(db.String(100), nullable=False)
password = db.Column(db.String(100), nullable=False)
articles = db.relationship("Article", back_populates="author")
class Article(db.Model):
__tablename__ = "article"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.String(200), nullable=False)
content = db.Column(db.Text, nullable=False)
author_id = db.Column(db.Integer, db.ForeignKey("user.id"))
author = db.relationship("User", back_populates="articles")
# 把表映射到数据库内,运行之后就可以在navicat中把数据输入数据库内
with app.app_context():
db.create_all()
@app.route("/article/add")
def article_add():
article01 = Article(title="Flask学习大纲", content="Flask框架xxx")
article01.author = User.query.get(2)
article02 = Article(title="Django学习大纲", content="Django框架xxx")
article02.author = User.query.get(2)
db.session.add_all([article01, article02])
db.session.commit()
return "文章添加成功"
@app.route("/article/query")
def query_article():
user = User.query.get(2)
for article in user.articles:
print(article.title)
return "文章查找成功!"
if __name__ == '__main__':
app.run()
这个是navicat的截图