自学flask到数据库操作这一块发现一个巨坑,教材中的运行版本和实际的运行版本不一致导致按照教材上做练习会出现错误,不得不吐槽有些教材真的垃圾,你用的哪个版本的库能不能在书中给个提示!
以下是解决学习FlaskWeb全栈开发实战(清华大学出版社),数据库操作这一节出现的巨坑。
因书中对自己所用的库的版本没有说,搞得按照书中的代码运行起来都是错误,以下是纠正代码。
from flask import Flask,render_template from flask_sqlalchemy import SQLAlchemy from sqlalchemy import text HOSTNAME="127.0.0.1" PORT=3306 USERNAME="root" PASSWORD="root" DATABASE="database_learn" app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI']=f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8" db = SQLAlchemy(app) class User(db.Model): __tablename__="user" id=db.Column(db.Integer,primary_key=True,autoincrement=True) username=db.Column(db.String(100)) password = db.Column(db.String(100)) with app.app_context(): with db.engine.connect() as conn: rs=conn.execute(text("select 1")) print(rs.fetchone()) db.create_all() if __name__ == '__main__': app.run()