Python 名称错误:全局名称';用户';没有定义

Python 名称错误:全局名称';用户';没有定义,python,flask,sqlalchemy,flask-sqlalchemy,Python,Flask,Sqlalchemy,Flask Sqlalchemy,我遵循教程,希望创建一个没有登录页面的配置文件页面,所以当我有http:…/user/peg时,正如我所说,我遇到了错误,我想是因为它无法连接到数据库。我使用python命令将数据放入User中 >>> u = models.User(nickname='peg', email='peg@email.com') >>> db.session.add(u) >>> db.session.commit() 我有一个问题,存储用户和帖子的数据库在

我遵循教程,希望创建一个没有登录页面的配置文件页面,所以当我有http:…/user/peg时,正如我所说,我遇到了错误,我想是因为它无法连接到数据库。我使用python命令将数据放入User中

>>> u = models.User(nickname='peg', email='peg@email.com')
>>> db.session.add(u)
>>> db.session.commit()
我有一个问题,存储用户和帖子的数据库在哪里?为什么他没有定义这个表?(因为在app.db中,我们有一个表有三列1.reponsity\u id 2.reponsity\u path 3.id),请告诉我如何解决这个错误。塔克斯

views.py

from app import app
from flask import render_template, flash, redirect


@app.route('/')
@app.route('/index')
def index():
    user = {'nickname': 'Miguel'}
    posts = [
       {
         'author': {'nickname': 'John'},
         'body': 'Beautiful day in Portland!'
         },
       {
         'author': {'nickname': 'Susan'},
         'body': 'The Avengers movie was so cool!'
       }
    ]
    return render_template("index.html",
                           title='Home',
                           user=user,
                           posts=posts)

 @app.route('/user/<nickname>')
 def user(nickname):
     #here I got error NameError: global name 'User' is not defined
     user = User.query.filter_by( nickname = nickname).first() 
     posts = [
          {'author': user, 'body': 'Test post #1'},
          {'author': user, 'body': 'Test post #2'}
     ]
     return render_template('user.html',
               user=user,
               posts=posts)
user.html


{%extends“base.html”%}
{%block content%}
用户:{{User.昵称}}!

{posts%%中的post为%s} {{post.author.nickname}说:{{post.body}

{%endfor%} {%endblock%}
您需要将模型导入您的
视图
模块:

from models import User

您需要将模型导入
视图
模块:

from models import User
添加:

class User(flask_login.UserMixin):
     pass
为我解决了这个问题。

添加:

class User(flask_login.UserMixin):
     pass

为我解决了这个问题。

请格式化您的代码!@斯特凡诺·桑菲利波,对不起,有什么特别的评论来编排它吗?@Pegasuss:有。使用工具栏上的
{}
按钮(粘贴代码并确保其全部选中后),或使用CTRL-K(或Mac上的CMD-K)。请查看您的代码格式!@斯特凡诺·桑菲利波,对不起,有什么特别的评论来编排它吗?@Pegasuss:有。使用工具栏上的
{}
按钮(粘贴代码并确保其全部选中后),或使用CTRL-K(或Mac上的CMD-K)。请参阅jinja2.exceptions.UndefinedError UndefinedError:'flask.ctx.\u AppCtxGlobals对象'没有属性'user'@Martijn Pieters现在我得到了此错误?对于此行@MartijnPieters@Pegasuss:您正在使用
g.user
g
是Flask全局对象,但是您在那里没有
user
属性。在您的情况下,您可能想使用
nickname=user.nickname
。@pegasus:也要遵循本教程的其余部分;Flask Login教程包括设置
g.user
的代码。我不想像我说的那样登录,只想从用户那里获取一个用户来显示profile@Martijn Pieters,那么你能帮我吗?jinja2.exceptions.UndefinedError UndefinedError:'Flask.ctx.\u-AppCtxGlobals对象'没有属性'user'@Martijn Pieters现在我得到了这个错误吗行@MartijnPieters@Pegasuss:您正在使用
g.user
g
是Flask全局对象,但是您在那里没有
user
属性。在您的情况下,您可能想使用
nickname=user.nickname
。@pegasus:也要遵循本教程的其余部分;Flask登录教程包括设置
g.user
的代码。我不想像我说的那样登录,只想从user中获取一个用户,以显示profile@Martijn Pieters,你能帮忙吗?
class User(flask_login.UserMixin):
     pass