मैं डीबी से एक ही समय में परिणाम देने के साथ-साथ परिणामों की क्वेरी करने की कोशिश कर रहा हूं और मैं इस त्रुटि के साथ समाप्त हुआ।SQLAlchemy सत्र त्रुटि: InvalidRequestError
sqlalchemy.exc.InvalidRequestError: This session is in 'committed' state; no further SQL can be emitted within this transaction.
पूर्ण Traceback:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\flask\app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Python34\lib\site-packages\flask\app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "C:\Python34\lib\site-packages\flask\app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Python34\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Python34\lib\site-packages\flask\app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "C:\Python34\lib\site-packages\flask\app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Python34\lib\site-packages\flask\app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Python34\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Python34\lib\site-packages\flask\app.py", line 1473, in full_dispatch_request
rv = self.preprocess_request()
File "C:\Python34\lib\site-packages\flask\app.py", line 1666, in preprocess_request
rv = func()
File "C:\Users\Ajay\PycharmProjects\Pypix-Flask\codehackr\auth\views.py", line 14, in before_request
if current_user.is_authenticated():
File "C:\Python34\lib\site-packages\werkzeug\local.py", line 338, in __getattr__
return getattr(self._get_current_object(), name)
File "C:\Python34\lib\site-packages\werkzeug\local.py", line 297, in _get_current_object
return self.__local()
File "C:\Python34\lib\site-packages\flask_login.py", line 46, in <lambda>
current_user = LocalProxy(lambda: _get_user())
File "C:\Python34\lib\site-packages\flask_login.py", line 794, in _get_user
current_app.login_manager._load_user()
File "C:\Python34\lib\site-packages\flask_login.py", line 363, in _load_user
return self.reload_user()
File "C:\Python34\lib\site-packages\flask_login.py", line 325, in reload_user
user = self.user_callback(user_id)
File "C:\Users\Ajay\PycharmProjects\Pypix-Flask\codehackr\models.py", line 296, in load_user
u = db.session.query(User, unread_count).filter(User.id == user_id).first()
File "C:\Python34\lib\site-packages\sqlalchemy\orm\query.py", line 2333, in first
ret = list(self[0:1])
File "C:\Python34\lib\site-packages\sqlalchemy\orm\query.py", line 2200, in __getitem__
return list(res)
File "C:\Python34\lib\site-packages\sqlalchemy\orm\query.py", line 2404, in __iter__
return self._execute_and_instances(context)
File "C:\Python34\lib\site-packages\sqlalchemy\orm\query.py", line 2417, in _execute_and_instances
close_with_result=True)
File "C:\Python34\lib\site-packages\sqlalchemy\orm\query.py", line 2408, in _connection_from_session
**kw)
File "C:\Python34\lib\site-packages\sqlalchemy\orm\session.py", line 843, in connection
close_with_result=close_with_result)
File "C:\Python34\lib\site-packages\sqlalchemy\orm\session.py", line 847, in _connection_for_bind
return self.transaction._connection_for_bind(engine)
File "C:\Python34\lib\site-packages\sqlalchemy\orm\session.py", line 298, in _connection_for_bind
self._assert_active()
File "C:\Python34\lib\site-packages\sqlalchemy\orm\session.py", line 192, in _assert_active
"This session is in 'committed' state; no further "
sqlalchemy.exc.InvalidRequestError: This session is in 'committed' state; no further SQL can be emitted within this transaction.
views.py
@main.route('/user/<username>', methods=['GET','POST'])
def user(username):
form = SkillForm()
if form.validate_on_submit():
skill_add = Skill(skill=form.skill.data, author=current_user._get_current_object())
db.session.add(skill_add)
return redirect(url_for('main.index'))
user = User.query.filter_by(username=username).first_or_404()
page = request.args.get('page', 1, type=int)
pagination = user.posts.order_by(Post.timestamp.desc()).paginate(
page, per_page=current_app.config['POSTS_PER_PAGE'],
error_out=False)
posts = pagination.items
skills = user.skills.all()
return render_template('user/user.html', user=user, posts=posts,
pagination=pagination, form=form, skills=skills)
इस त्रुटि को हल करने के लिए कैसे। धन्यवाद
'db.session.com()' – AlexLordThorsen
या 'db.session.rollback()' के बाद 'db.session.commit()' जोड़ने का प्रयास करें। मैं सुझाव दूंगा कि आप फ्लास्क SQLAlchemy इन त्रुटियों में से अधिकांश का ख्याल रखने के बाद से बॉक्स के बाहर SQLAlchemy का उपयोग करने के बजाय [Flask-SQLAlchemy] (https://github.com/mitsuhiko/flask-sqlalchemy) एक्सटेंशन पर नज़र डालें। –