weixin_52331560 2022-07-04 14:28 采纳率: 83.3%
浏览 62
已结题

flask-sqlalchemy无法操作数据库

1、问题遇到的现象和发生背景
python3
使用flask_sqlalchemy连接mysql。执行db.create_all()后,数据库没有创建表。程序运行之后也没有报错,怀疑是根本没有连接到数据库


我的代码
from flask import Flask

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

#数据库配置变量
HOSTNAME = '192.168.126.108'
PORT     = '3306'
DATABASE = 'material'
USERNAME = 'flask'
PASSWORD = '12345678.Com'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)
app.config['DWLALCHEMY_DATABASE_URI'] = DB_URI
#关闭数据库的跟踪
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
#开启输出sql语句
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app)

#定义ORM模型
class Article(db.Model):
    __tablename__ = "article"
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    title = db.Column(db.String(200),nullable=False)
    content = db.Column(db.Text,nullable=False)

db.create_all()

@app.route("/trick")
def trick_view():
    article = Article(title="123", content="xxx")
    db.session.add(article)
    db.session.commit()
    return "操作"

@app.route('/')
def index():
    engine = db.get_engine()
    with engine.connect() as conn:
        result = conn.execute("select 1")
        print(result.fetchone())
    return 'Helle world!'

if __name__=='__main__':
    app.run()

2、 运行结果
2022-07-04 14:16:51,098 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2022-07-04 14:16:51,099 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("article")
2022-07-04 14:16:51,099 INFO sqlalchemy.engine.Engine [raw sql] ()
2022-07-04 14:16:51,102 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("article")
2022-07-04 14:16:51,102 INFO sqlalchemy.engine.Engine [raw sql] ()
2022-07-04 14:16:51,104 INFO sqlalchemy.engine.Engine
CREATE TABLE article (
id INTEGER NOT NULL,
title VARCHAR(200) NOT NULL,
content TEXT NOT NULL,
PRIMARY KEY (id)
)

2022-07-04 14:16:51,104 INFO sqlalchemy.engine.Engine [no key 0.00026s] ()
2022-07-04 14:16:51,105 INFO sqlalchemy.engine.Engine COMMIT

  • Serving Flask app 'app' (lazy loading)
  • Environment: production
    WARNING: This is a development server. Do not use it in a production deployment.
    Use a production WSGI server instead.
  • Debug mode: on
  • Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
  • Restarting with stat

3、 我的解答思路和尝试过的方法
曾经怀疑是库的问题,我安装了flask,flask-sqlalchemy,sqlalchemy和pymysql

  • 写回答

1条回答 默认 最新

  • 溪风沐雪 2022-07-04 14:56
    关注

    拼写错误吧,我简单改了一下就可以了:

    你的:    app.config['DWLALCHEMY_DATABASE_URI'] = DB_URI
    修改后:app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月12日
  • 已采纳回答 7月4日
  • 创建了问题 7月4日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。