今天继续学习 Flask Web开发5.8节,在python console中输入:
user_role.users.order_by(User.username).all()
显示错误信息:
AttributeError: 'InstrumentedList' object has no attribute 'order_by'
我的hello.py
import os
from flask import Flask, render_template, session, redirect, url_for, flash
from flask_bootstrap import Bootstrap
from flask_moment import Moment
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
from flask_sqlalchemy import SQLAlchemy
basedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
app.config['SECRET_KEY'] = 'hard to guess string'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
bootstrap = Bootstrap(app)
moment = Moment(app)
db = SQLAlchemy(app)
class Role(db.Model):
__tablename__ = 'roles'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True)
users = db.relationship('User', backref='role', lazy='dynamic')
def __repr__(self):
return '<Role %r>' % self.name
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True, index=True)
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
def __repr__(self):
return '<User %r>' % self.username
class NameForm(FlaskForm):
name = StringField('What is your name?', validators=[DataRequired()])
submit = SubmitField('Submit')
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
@app.errorhandler(500)
def internal_server_error(e):
return render_template('500.html'), 500
@app.route('/', methods=['GET', 'POST'])
def index():
form = NameForm()
if form.validate_on_submit():
old_name = session.get('name')
if old_name is not None and old_name != form.name.data:
flash('Looks like you have changed your name!')
session['name'] = form.name.data
return redirect(url_for('index'))
return render_template('index.html', form=form, name=session.get('name'))
if __name__ == '__main__':
app.run(debug=True)
最后的解决方法是:
将服务重启,重新在python console中重新加载数据,最后成功!
相关推荐
**Flask Web开发:基于Python的Web应用开发实战** Flask是Python编程语言中的一个轻量级Web应用程序框架,以其简洁、灵活的特性受到了开发者们的广泛欢迎。它遵循"微框架"理念,允许开发者自由选择如何组织项目和...
FlaskWeb开发:基于Python的Web应用开发实战
《Flask Web开发:基于Python的Web应用开发实战》是一本深入浅出的教程,旨在帮助读者掌握使用Python的Flask框架构建Web应用程序的技术。Flask是一个轻量级的Web服务器网关接口(WSGI)Web应用框架,以其灵活性、...
《FlaskWeb开发实战:入门、进阶与原理解析学习》是一本全面解析Flask框架的实战指南,旨在帮助开发者从零基础开始掌握Web应用的构建。Flask是Python语言中最受欢迎的轻量级Web服务器框架之一,以其简洁、灵活的特性...
**Flask Web开发实战——Python Web开发的轻量级选择** Flask,作为一个轻量级的Python Web框架,自2010年开源以来,已经在开发者社区中积累了极高的声誉。与Django这样的全功能框架相比,Flask以其灵活性、简单性...
主要介绍了解决python多线程报错:AttributeError: Can't pickle local object问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
本书共分三部分,全面介绍如何基于 Python 微框架 Flask 进行 Web 开发。第一部分是 Flask 简介,介绍使用 Flask 框架及扩展开发 Web 程序的必备基础知识 ;第二部分则给出一个实例,真 正带领大家一步步开发完整的...
File “D:/flaskProject/test.py”, line 35, in test pool.apply(self.out, args=(i,)) File “Python37-32\lib\multiprocessing\pool.py”, line 261, in apply return self.apply_async(func, args, kwds).get() ...
Flask web开发实战视频教程+源代码+课件-Python框架。 Flask是一个使用 Python 编写的轻量级 Web 应用框架,扩展性非常良好。 是web端流行框架之一, Flask web开发实战+源代码+课件, 度盘自取 ======== Flask ...
《Flask Web开发:基于Python的Web应用开发实战》是一本由Miguel Grinberg所著,安道翻译的书籍,它旨在帮助熟悉Python编程的读者深入理解并掌握使用Flask框架进行Web开发。Flask是一个轻量级的Python Web框架,它以...
Flask之旅《FlaskWeb开发:基于Python的Web应用开发实战》学习笔记汇总.pdf
《Flask-Web开发实战》是一本专注于使用Python Flask框架进行Web应用开发的书籍。Flask作为轻量级的Web服务器网关接口(WSGI)微框架,以其简洁、灵活的特点受到众多开发者喜爱。这本书旨在帮助初学者和有一定经验的...
**Flask Web开发详解** **一、Flask框架基础** Flask是一款轻量级的Python Web框架,由Armin Ronacher开发。它以其简洁、灵活的特性受到开发者喜爱,适用于快速构建小型到中型的Web应用。Flask的核心是基于...
《Flask Web开发:基于Python的Web应用开发实战》是一本深入浅出的教程,旨在帮助读者掌握使用Python和Flask框架构建Web应用程序的技术。Flask是一个轻量级的Web服务器网关接口(WSGI)微框架,它以其灵活性和简单性...
FlaskWeb开发:基于Python的Web应用开发实战 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试...