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()
如何在 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的主要内容,如果未能解决你的问题,请参考以下文章
ModuleNotFoundError:没有名为“flask_sqlalchemy”的模块
ModuleNotFoundError:没有名为“flask_sqlalchemy.orm”的模块