from flask_sqlalchemy import SQLAlchemy 无法创建数据库表,代码无报错,代码如下,python版本是3.5

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了from flask_sqlalchemy import SQLAlchemy 无法创建数据库表,代码无报错,代码如下,python版本是3.5相关的知识,希望对你有一定的参考价值。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:666888@127.0.0.1/flask_demo'

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

# 角色(管理员/普通用户)
# 用户(角色id)

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.drop_all()

# 创建表
db.create_all()

app.run()

把db.create_all函数拿到 if 语句前才能执行 参考技术A 老哥, 我也出现跟你一样的问题,后来解决了吗?

如何在 flask_sqlalchemy 中查询 ScalarListType

【中文标题】如何在 flask_sqlalchemy 中查询 ScalarListType【英文标题】:How can I query a ScalarListType in flask_sqlalchemy 【发布时间】:2018-09-10 02:11:00 【问题描述】:

我想在 flask_sqlalchemy 中插入一个整数列表作为单列数据类型, 我找到了ScalarListType in the package SQLAlchemy-Utils:

from sqlalchemy_utils import ScalarListType 

class Foo():
    id = db.Column(db.Integer, primary_key=True)
    list = db.Column(ScalarListType(int))

我可以通过 id 查询 foo:

foo = Foo.query.filter(Foo.id==1).first()

那么,foo.list 是一个整数列表,如[0, 0, 1, 0]

但是,如何为列表中的索引构建查询?例如。类似Foo.list[3]==1

我找不到任何线索,请帮帮我!

【问题讨论】:

当您尝试foo.list[3] 时会发生什么?或者,您只是想查找列表中包含1 的索引吗? 当我尝试foos = Foo.query.filter_by(Foo.list[3]==1).all()时,我得到了错误NotImplementedError: Operator 'getitem' is not supported on this expression,我可以看到pgAdmin中列表的数据类型是文本。 foo.list 可能有多个 1 只是为了进一步缩小问题范围:您是否试图找出该列表在第三个索引中是否有 1,因此您可以在从数据库中检索到它之前对其进行过滤? 嘿,我稍微编辑了这个问题——这仍然描述了你在寻找什么吗? 【参考方案1】:

我不确定 ScalarListType 是否能够完成你想要的——它看起来不像是为通过索引查询而构建的。请参阅the source code here——它只是一个用逗号分隔值的文本列。

你也许可以用裸 SQL 破解一些东西,但这可能意味着在某处使用 LIKE,或者拆分 gets complicated quickly 的字符串。

从长远来看,最好只为这些数据创建一个单独的列。

【讨论】:

以上是关于from flask_sqlalchemy import SQLAlchemy 无法创建数据库表,代码无报错,代码如下,python版本是3.5的主要内容,如果未能解决你的问题,请参考以下文章

flask_sqlalchemy 调用存储过程

ModuleNotFoundError:没有名为“flask_sqlalchemy”的模块

ModuleNotFoundError:没有名为“flask_sqlalchemy.orm”的模块

flask_sqlalchemy

如何在 flask_sqlalchemy 中查询 ScalarListType

初学flask_sqlalchemy