Flask——创建模型类

常用的SQLAlchemy字段类型:

类型名python中类型python中类型
Integerint普通整数,一般是32位
SmallIntegerint取值范围小的整数,一般是16位
BigIntegerint或long不限制精度的整数
Floatfloat浮点数
Numericdecimal.Decimal普通整数,一般是32位
Stringstr变长字符串
Textstr变长字符串,对较长或不限长度的字符串做了优化
Unicodeunicode变长Unicode字符串
UnicodeTextunicode
Booleanbool布尔值
Datedatetime.date时间
Timedatetime.datetime日期和时间
LargeBinarystr二进制文件

常用的SQLAlchemy列选项

选项名说明
primary_key如果为True,代表表的主键
unique如果为True,代表这列不允许出现重复的值
index如果为True,为这列创建索引,提高查询效率
nullable如果为True,允许有空值,如果为False,不允许有空值
default为这列定义默认值

常用的SQLAlchemy关系选项

选项名说明
backref在关系的另一模型中添加反向引用
primary join明确指定两个模型之间使用的联结条件
uselist如果为False,不使用列表,而使用标量值
order_by指定关系中记录的排序方式
secondary指定多对多中记录的排序方式
secondary join在SQLAlchemy中无法自行决定时,指定多对多关系中的二级联结条件

上文将配置进行编写,配置如下:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

class Config(object):
    """配置参数"""
    # sqlalchemy的配置参数
    SQLALCHEMY_DATABASE_URI = "mysql://root:123456@127.0.0.1:3306/db_python"

	#设置每次请求结束后会自动提交数据库中的改动,一般都设置手动保存
	SQLALCHEMY_COMMIT_ON_TEARDOWN = False
	
    # 设置sqlalchemy自动更新跟踪数据库
    SQLALCHEMY_TRACK_MODIFICATIONS = True

# 连接数据库
app.config.from_object(Config)

# 创建数据库aqlalchemy工具对象
db = SQLAlchemy(app)

@app.route("/")
def start():
    return "This is the beginning"

if __name__ == '__main__':
    app.run(host="127.0.0.1", port=8000, debug=True)

这回将创建两个模型类,分别为用户类和用户角色类,两个类具有上下层的关系,即用户角色类为上层,用户类为下层,创建如下:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

class Config(object):
    """配置参数"""
    # sqlalchemy的配置参数
    SQLALCHEMY_DATABASE_URI = "mysql://root:123456@127.0.0.1:3306/db_python"

    # 设置sqlalchemy自动更新跟踪数据库
    SQLALCHEMY_TRACK_MODIFICATIONS = True

# 连接数据库
app.config.from_object(Config)

# 创建数据库aqlalchemy工具对象
db = SQLAlchemy(app)

# 创建数据库模型类
class Role(db.Model):
    """用户角色/身份表"""
    __tablename__ = "tbl_roles"

    id = db.Column(db.Integer, primary_key=True)  # 整型的主键,会默认设置为自增主键
    name = db.Column(db.String(32), unique=True)

# 创建数据库模型类
class User(db.Model):
    """用户表"""
    __tablename__ = "tbl_users"  # 指明数据库的表名

    id = db.Column(db.Integer, primary_key=True)  # 整型的主键,会默认设置为自增主键
    name = db.Column(db.String(64), unique=True)
    email = db.Column(db.String(128), unique=True)
    passward = db.Column(db.String(128))

@app.route("/")
def start():
    return "This is the beginning"

if __name__ == '__main__':
    app.run(host="127.0.0.1", port=8000, debug=True)

上述代码创建的两个类还未具有层级关系,让Role类(用户角色类)和User(用户类)能互相寻找需要建立两者的联系,如下:

# 创建数据库模型类
class User(db.Model):
    """用户表"""
    __tablename__ = "tbl_users"  # 指明数据库的表名

    id = db.Column(db.Integer, primary_key=True)  # 整型的主键,会默认设置为自增主键
    name = db.Column(db.String(64), unique=True)
    email = db.Column(db.String(128), unique=True)
    passward = db.Column(db.String(128))
    roid_id = db.Column(db.Integer, db.ForeignKey("tbl_roles.id"))  # 使Role类和User类建立联系

Role类(用户角色类)能往下找User(用户类),User(用户类)能往上找Role类(用户角色类),方法如下:

# 创建数据库模型类
class Role(db.Model):
    """用户角色/身份表"""
    __tablename__ = "tbl_roles"

    id = db.Column(db.Integer, primary_key=True)  # 整型的主键,会默认设置为自增主键
    name = db.Column(db.String(32), unique=True)
    users = db.relationship("User", backref="role")  # 当role.users调用时,指明调用的是User的模型类;brakrefk可以用于反推,当user.role时,将上层对象进行打印

完整代码如下:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

class Config(object):
    """配置参数"""
    # sqlalchemy的配置参数
    SQLALCHEMY_DATABASE_URI = "mysql://root:123456@127.0.0.1:3306/db_python"

    # 设置sqlalchemy自动更新跟踪数据库
    SQLALCHEMY_TRACK_MODIFICATIONS = True

# 连接数据库
app.config.from_object(Config)

# 创建数据库aqlalchemy工具对象
db = SQLAlchemy(app)

# 创建数据库模型类
class Role(db.Model):
    """用户角色/身份表"""
    __tablename__ = "tbl_roles"

    id = db.Column(db.Integer, primary_key=True)  # 整型的主键,会默认设置为自增主键
    name = db.Column(db.String(32), unique=True)
    users = db.relationship("User", backref="role")  # 当role.users调用时,指明调用的是User的模型类;brakrefk可以用于反推,当user.role时,将上层对象进行打印


# 创建数据库模型类
class User(db.Model):
    """用户表"""
    __tablename__ = "tbl_users"  # 指明数据库的表名

    id = db.Column(db.Integer, primary_key=True)  # 整型的主键,会默认设置为自增主键
    name = db.Column(db.String(64), unique=True)
    email = db.Column(db.String(128), unique=True)
    passward = db.Column(db.String(128))
    roid_id = db.Column(db.Integer, db.ForeignKey("tbl_roles.id"))  # 使Role类和User类建立联系

@app.route("/")
def start():
    return "This is the beginning"

if __name__ == '__main__':
    app.run(host="127.0.0.1", port=8000, debug=True)

以上就是Flask使用sqlalchemy创建模型类的基本方法,各位读者有疑问的可以私信博主或评论留下足迹。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要部署一个基于Flask的NLP模型,需要以下步骤: 1. 获取必要的库和依赖项: 您需要安装Flask和NLP库(如spaCy或NLTK),以便您能使用这些库来处理从用户输入或API请求收到的数据。 2. 创建Flask应用程序: 在Flask应用程序中,您需要使用API或端点来将模型与用户交互。您还需要定义路由,为模型传递请求。对于NLP模型,您通常使用POST请求,因为它需要从请求正文中获取数据。 3. 加载NLP模型: 您需要创建一个函数或类来加载和初始化NLP模型,并将其嵌入Flask应用程序中,以便可以通过端点调用它。这需要在应用程序初始化时完成。 4. 处理数据: 接下来,您需要编写代码来处理来自前端用户的数据。这可能需要使用表单填充或数据解析功能来提取输入数据。 5. 使用模型处理数据: 在获得原始用户数据之后,您需要使用您的NLP模型将其转换为您需要的数据格式。这可能包括文本清理,分词,词干提取,情感分析或其他形式的文本处理技术。 6. 返回结果: 完成了数据处理和NLP模型处理后,您需要返回用户请求模型的结果。结果可以是文本分析,情感分析,关键字提取,实体识别,语法分析等。 7. 部署: 最后,您需要将应用程序部署到服务器或云上,并确保与Flask应用程序相关的组件(如数据库连接或系统环境变量)在服务器上设置正确。 在完成这些步骤后,您的Flask应用程序现在可以处理来自用户请求模型的数据,并使用您选择的NLP算法来分析和处理文本,提取有用的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值