Python 名称错误:全局名称';用户';没有定义
我遵循教程,希望创建一个没有登录页面的配置文件页面,所以当我有http:…/user/peg时,正如我所说,我遇到了错误,我想是因为它无法连接到数据库。我使用python命令将数据放入User中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() 我有一个问题,存储用户和帖子的数据库在
>>> 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