当前位置: 首页 > news >正文

海鲜网站模板网站建设开发步骤

海鲜网站模板,网站建设开发步骤,城市分类信息网站系统,动漫网站建设意义SQLAlchemy-2.0中模型定义和alembic的数据库迁移工具 一、SQLAIchemy的介绍二、数据库引擎1、支持的数据库1.1、sqlite数据库1.2、MySQL数据库1.3、数据库引擎的参数 三、定义模型类1、定义模型2、engine负责数据库迁移 四、alembic数据库迁移⼯具1、安装alembic2、初始化alemb… SQLAlchemy-2.0中模型定义和alembic的数据库迁移工具 一、SQLAIchemy的介绍二、数据库引擎1、支持的数据库1.1、sqlite数据库1.2、MySQL数据库1.3、数据库引擎的参数 三、定义模型类1、定义模型2、engine负责数据库迁移 四、alembic数据库迁移⼯具1、安装alembic2、初始化alembic环境3、修改配置和环境4、执⾏命令 一、SQLAIchemy的介绍 SQLAlchemy 是 Python 生态系统中最流行的 ORM。SQLAlchemy 设计非常优雅分为了两部分——底层的 Core 和上层的传统ORM。在 Python 乃至其他语言的大多数 ORM 中都没有实现很好的分层设计比如 django 的 ORM数据库链接和 ORM 本身完全混在一起。 SQLAlchemy 是 Python 中一个通过 ORM 操作数据库的框架。 SOLAIchemy对象关系映射器提供了一种方法用于将用户定义的Python类与数据库表相关联并将这些类(对象)的实例与其对应表中的行相关联。它包括一个透明地同步对象及其相关行之间状态的所有变化的系统称为工作单元以及根据用户定义的类及其定义的彼此之间的关系表达数据库查询的系统。 可以让我们使用类和对象的方式操作数据库从而从繁琐的 sql语句中解脱出来。 ORM 就是: Obiect Relational Mapper 的简写就是关系对象映射器的意思。 二、数据库引擎 任何SQLAlchemy应用程序的开始都是一个名为 Engine.此对象充当连接到特定数据库的中心源提供工厂和称为 connection pool对于这些数据库连接。引擎通常是一个只为特定数据库服务器创建一次的全局对象并使用一个URL字符串进行配置该字符串将描述如何连接到数据库主机或后端。 sqlalchemy使用create_engine()函数从URL生成一个数据库引擎对象。例如 enginecreate_engine(rsqlite:///C:\path\to\foo.db) 1、支持的数据库 URL通常可以包括⽤⼾名、密码、主机名、数据库名以及⽤于其他配置的可选关键字参数。主题格式 为 1.1、sqlite数据库 sqlite使⽤python内置模块连接到基于⽂件的数据库sqlite3 默认情况下。 1.2、MySQL数据库 mysql⽅⾔使⽤mysql python作为默认dbapi。mysql dbapis有很多包括pymysql和mysqlclient from sqlalchemy import create_engineengine create_engine(mysqlpymysql://root:rootlocalhost:3306/test_db2?charsetutf8)1.3、数据库引擎的参数 echoFalse–如果为真引擎将记录所有语句以及repr()其参数列表的默认⽇志处理程序future --使⽤2.0样式Engine和Connection API。logging_name–将在“sqlalChemy.engine”记录器中⽣成的⽇志记录的“name”字段中使⽤的 字符串标识符。pool_size5 #连接池的⼤⼩默认为5个设置为0时表⽰连接⽆限制pool_recycle3600,#设置时间以限制数据库⾃动断开pool_timeout连接超时时间默认为30秒超过时间的连接都会连接失败。 三、定义模型类 这种模型类结构称为声明性映射它同时定义了 Python 对象模型以及描述的数据库元数据 在特定数据库中存在或将要存在的 真实 数据库 表。 映射从一个基类开始并且是 通心对类的继承来创建一个简单的子类。这里的父类是Base 模型类。 1、定义模型 # 定义一个模型类的基类 class Base(DeclarativeBase):# 所有的模型类都有的属性和字段映射create_time: Mapped[datetime] mapped_column(DateTime, insert_defaultfunc.now(), comment创建时间)update_time: Mapped[datetime] mapped_column(DateTime, insert_defaultfunc.now(), onupdatefunc.now(),comment更新时间) import enum from decimal import Decimalfrom sqlalchemy import String, DECIMAL, Boolean from sqlalchemy.orm import Mapped, mapped_columnfrom ch04.db_main import Base, engineclass SexValue(enum.Enum):通过枚举可以给一些属性字段设置预设值MALE 男FEMALE 女class Employee(Base):员工的模型类__tablename__ t_empid: Mapped[int] mapped_column(primary_keyTrue, autoincrementTrue)name: Mapped[str] mapped_column(String(40), nameemp_name, uniqueTrue, nullableFalse) # 不允许为空# DECIMAL10总位数2小数点后位数sal: Mapped[Decimal] mapped_column(DECIMAL(10, 2), nullableTrue, comment员工的基本薪资)bonus: Mapped[int] mapped_column(default0, comment员工的津贴)is_leave: Mapped[bool] mapped_column(Boolean, defaultFalse, comment员工是否离职True表示离职False表示在职)gender: Mapped[SexValue]if __name__ __main__:# 数据库迁移# 创建表Base.metadata.create_all(engine)2、engine负责数据库迁移 # 所有的表都重新创建 Base.metadata.drop_all(engine) Base.metadata.create_all(engine) # 单独把某个表创建⼀下 Employee.__table__.drop(engine) Employee.__table__.create(engine)四、alembic数据库迁移⼯具 Alembic使⽤SQLAlchemy作为底层引擎为关系数据库提供变更脚本的创建、管理和调⽤。 1、安装alembic pip install alembic2、初始化alembic环境 命令alembic init alembic 3、修改配置和环境 4、执⾏命令 # ⾃动⽣成迁移脚本 alembic revision --autogenerate -m init commit # 注意修改了orm之后修改-m后迁移脚 # 数据库迁移命令 alembic upgrade head查看数据库的版本号与versions中生成的版本号一致 • alembic upgrade head 将数据库升级到最新版本。 • alembic downgrade base 将数据库降级到最初版本。 • alembic upgrade 将数据库升级到指定版本。 • alembic downgrade 将数据库降级到指定版本。 演示版本降级
http://www.dnsts.com.cn/news/135751.html

相关文章:

  • 在线手机动画网站模板医疗网站设计网站
  • 网站开发违法农业咨询平台网站建设方案
  • 河源市东源县建设局网站曲麻菜公司网站建设
  • 安徽 网站制作wordpress媒体保存目录
  • 阳江网站建设公司网站建设文案详情
  • wordpress建淘宝客网站吗微信开发公司哪家好
  • 个人网站的建立怎么做希爱力副作用太强了
  • 在线培训网站网页布局技巧
  • 请别人做网站需要注意什么wordpress导航标签
  • 保定市网站设计陕汽企业门户登录
  • 电商网站建设工具做网站不用数据库可以吗
  • 建站园php仿博客园网站
  • 做阿里巴巴网站需要哪些资料学院网站建设进度情况说明书
  • 太仓网站建设太仓网站设计用什么软件
  • 南通五建宏业建设工程有限公司网站建设银行行号查询网站
  • 做门户网站的公司网站一般做多大像素
  • 阿里巴巴外贸网站论坛怎么样能够为一个网站做推广
  • 网站开发布局wordpress简洁
  • 成都网站建设电话电子商务网站建设重要性
  • wordpress 3d常州百度关键词优化
  • 宁波拾谷网站建设大型商城网站建站
  • 做好中心网站建设工作总结深圳工业设计展
  • 19楼网站模板辽宁建设工程信息网官网平台
  • 网站图片如何做链接北京定制公交app
  • 比较实用的h5网页建设网站做代金券的网站
  • 常州网站建设公司巧誉友网络官方网站开发公司排名
  • 威联通做网站厦门seo服务商
  • 怎么建设个网站网站昆明网站建设方案报价
  • 中英文网站模板源码设计的网站都有哪些
  • 小程序app分销网站建设国外公司网站模板