为了账号安全,请及时绑定邮箱和手机立即绑定

FLask在mysql数据库中无法增加数据

/ 猿问

FLask在mysql数据库中无法增加数据

我是北方栖姬 2019-01-26 12:14:09
# -*- coding:utf-8 -*-
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)


app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@localhost:3306/flask_sql'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

#数据库模型
class Role(db.Model):
    __tablename__ = 'roles'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(16), unique = True)

class User(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(16), unique=True)
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))



@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':


    db.create_all()

    app.run(debug = True)

pymysql和sqlAlchemy驱动都装上了,驱动也都也导入了项目里,可是运行后数据库里的flask_sql没有任何新数据显示,不知道怎么回事,运行后也没有报错。

https://img1.sycdn.imooc.com/5c4bde31000195db05730201.jpg

https://img2.sycdn.imooc.com/5c4bde7100013f4101920060.jpg


查看完整描述

1 回答

已采纳
?
pardon110

很显然你数据库连表结构都没有自动创建何来增加数据

查看完整回答
反对 2019-01-26
  • 我是北方栖姬
    我是北方栖姬
    谢谢指导,db.create_all()放在class类之下就可以了。但是为什么 db.create_all() 在最后的 if __name__ == 'main'语句中没法建表呢?恳请指导

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信