python flask 中的全局变量声称它在使用它的 5 个函数中的 1 个中被引用之前
Global variable in python flask claims it is being referenced before usage in 1 of 5 functions using it
在浏览器上查看我的页面时出现以下错误。
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1997, in __call__
return self.wsgi_app(environ, start_response)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask_login/utils.py", line 228, in decorated_view
return func(*args, **kwargs)
File "/home/jsnyder10/Documents/jMessage/app/views.py", line 66, in admin_edit_groups
if not g.user.admin:
UnboundLocalError: local variable 'g' referenced before assignment
这是我的 python 使用 Flask 进行路由的代码。第一个函数是我在每个管理路由中使用的代码,它运行良好,但由于某种原因 admin_edit_groups 路由抛出这个 error.What 我错过了吗?
from flask import render_template, flash, redirect, session, url_for, request, \
g, jsonify, send_from_directory
@app.route('/admin', methods=['GET', 'POST'])
@login_required
def admin():
if not g.user.admin:
flash('Page unacessible.')
return redirect(url_for('index'))
return render_template('admin.html',title='Admin')
@app.route('/admin_edit_groups', methods=['GET', 'POST'])
@login_required
def admin_edit_groups():
if not g.user.admin:
flash('Page unacessible.')
return redirect(url_for('index'))
form = AddGroupForm()
if request.method == 'POST' and form.validate():
if not Group.query.filter_by(name=form.groupname.data).count()>0:
g=Group(name=form.groupname.data)
db.session.add(g)
db.session.commit()
flash('Added Group name ' + form.groupname.data)
else:
flash('Group: ' + form.groupname.data + ' already exists.')
groups=Group.query.all()
return render_template('admin_edit_groups.html',title='Admin', form=form, groups=groups)
您正在函数中使用另一个 g
,这将覆盖全局 g
。
if not Group.query.filter_by(name=form.groupname.data).count()>0:
g=Group(name=form.groupname.data) # Here it is, rename it.
db.session.add(g)
db.session.commit()
在浏览器上查看我的页面时出现以下错误。
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1997, in __call__
return self.wsgi_app(environ, start_response)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/jsnyder10/Documents/45/flask/lib/python2.7/site-packages/flask_login/utils.py", line 228, in decorated_view
return func(*args, **kwargs)
File "/home/jsnyder10/Documents/jMessage/app/views.py", line 66, in admin_edit_groups
if not g.user.admin:
UnboundLocalError: local variable 'g' referenced before assignment
这是我的 python 使用 Flask 进行路由的代码。第一个函数是我在每个管理路由中使用的代码,它运行良好,但由于某种原因 admin_edit_groups 路由抛出这个 error.What 我错过了吗?
from flask import render_template, flash, redirect, session, url_for, request, \
g, jsonify, send_from_directory
@app.route('/admin', methods=['GET', 'POST'])
@login_required
def admin():
if not g.user.admin:
flash('Page unacessible.')
return redirect(url_for('index'))
return render_template('admin.html',title='Admin')
@app.route('/admin_edit_groups', methods=['GET', 'POST'])
@login_required
def admin_edit_groups():
if not g.user.admin:
flash('Page unacessible.')
return redirect(url_for('index'))
form = AddGroupForm()
if request.method == 'POST' and form.validate():
if not Group.query.filter_by(name=form.groupname.data).count()>0:
g=Group(name=form.groupname.data)
db.session.add(g)
db.session.commit()
flash('Added Group name ' + form.groupname.data)
else:
flash('Group: ' + form.groupname.data + ' already exists.')
groups=Group.query.all()
return render_template('admin_edit_groups.html',title='Admin', form=form, groups=groups)
您正在函数中使用另一个 g
,这将覆盖全局 g
。
if not Group.query.filter_by(name=form.groupname.data).count()>0:
g=Group(name=form.groupname.data) # Here it is, rename it.
db.session.add(g)
db.session.commit()