好运杏仁eee 2023-09-22 18:41 采纳率: 75%
浏览 11

学习flask框架,报错AttributeError: 'NoneType' object has no attribute 'articles'但是没找到解决方案

我在看教学视频时跟着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的截图

img

  • 写回答

2条回答 默认 最新

  • 无序繁星 2023-09-22 20:05
    关注

    user查到是空的,你检查下数据库user表是不是不存在这个用户

    评论

报告相同问题?

问题事件

  • 创建了问题 9月22日

悬赏问题

  • ¥15 office打开卡退(新电脑重装office系统后)
  • ¥300 FLUENT 火箭发动机燃烧EDC仿真
  • ¥15 【Hadoop 问题】Hadoop编译所遇问题hadoop-common: make failed with error code 2
  • ¥15 vb6.0+webbrowser无法加载某个网页求解
  • ¥15 RPA财务机器人采购付款流程
  • ¥15 计算机图形多边形及三次样条曲线绘制
  • ¥15 根据protues画的图用keil写程序
  • ¥200 如何使用postGis实现最短领规划?
  • ¥15 pyinstaller打包错误
  • ¥20 cesm的气溶胶排放文件