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

网站用什么空间好广州建设网站是什么样的

网站用什么空间好,广州建设网站是什么样的,电商网站建站报价,建个小型网站服务器目录 Column常用参数 代码演示 代码刨析 query函数的使用 基本用法 常见用法示例 查询所有记录 根据条件查询 查询第一条符合条件的记录 查询特定列的值 添加排序规则 使用聚合函数 连接查询 使用filter_by Column常用参数 primary_key:True设置某个字…

目录

Column常用参数

代码演示

 代码刨析

query函数的使用

基本用法

常见用法示例

查询所有记录

根据条件查询

查询第一条符合条件的记录

查询特定列的值

添加排序规则

使用聚合函数

连接查询 

使用filter_by


Column常用参数

  • primary_key:True设置某个字段为主键。

class User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)
  • autoincrement:True设置这个字段为自动增长的。

from sqlalchemy import Column, Integer, Stringclass User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True, autoincrement=True)username = Column(String(50))
  • default:设置某个字段的默认值。在发表时间这些字段上面经常用。

class User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)status = Column(String(20), default='active')
  • nullable:指定某个字段是否为空。默认值是True,就是可以为空。

class User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)name = Column(String(50), nullable=False)
  • unique:指定某个字段的值是否唯一。默认是False。

class User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)email = Column(String(100), unique=True)
  • onupdate:在数据更新的时候会调用这个参数指定的值或者函数。在第一次插入这条数据的时候,不会用onupdate的值,只会使用default的值。常用于是update_time字段(每次更新数据的时候都要更新该字段值)。

from sqlalchemy import Column, Integer, String, DateTime, funcclass User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)username = Column(String(50))last_updated = Column(DateTime, onupdate=func.now())
  • server_default(服务器端默认值):在数据库层面设置默认值,而不是在Python代码层面。

from sqlalchemy import textclass User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)created_at = Column(DateTime, server_default=text('CURRENT_TIMESTAMP'))
  • index(索引):指定是否为该列创建索引,以提高检索速度。

class User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)username = Column(String(50), index=True)
  • name:指定ORM模型中某个属性映射到表中的字段名。如果不指定,那么会使用这个属性的名字来作为字段名。如果指定了,就会使用指定的这个值作为表字段名。这个参数也可以当作位置参数,在第1个参数来指定。

title = Column(String(50),name='title',nullable=False)
title = Column('my_title',String(50),nullable=False)

代码演示

from datetime import datetimefrom sqlalchemy import Column,Integer,DateTime,Stringfrom db_util import Base,Sessionclass News(Base):__tablename__ = 't_news2'id = Column(Integer,primary_key = True,autoincrement = True)phone = Column(String(11),unique = True)title = Column(String(32),nullable = False)read_count = Column(Integer,default=1)create_time = Column(DateTime,default = datetime.now)update_time = Column(DateTime,default = datetime.now, onupdate =datetime.now ) # 当数据更新后,参数的内容才会更改def create_data():new1 = News(phone='16866666666',title='测试列参数')with Session() as session:session.add(new1)session.commit()def create_data2():# new1 = News(phone='16866666666',title='测试列参数') # 不允许重复# new1 = News(phone='16866666668') # title不能为空# with Session() as session:#   session.add(new1)#   session.commit()with Session() as session:new1 = session.query(News).first()  new1.read_count = 2session.commit()if __name__ == '__main__':# Base.metadata.create_all()# create_data()create_data2()

 代码刨析

  1. id: 主键列,自动递增。
  2. phone: 字符串类型,长度为11,唯一约束。
  3. title: 字符串类型,最大长度为32,不能为空。
  4. read_count: 整数类型,有一个默认值为1。
  5. create_time: 日期时间类型,有一个默认值为当前时间。
  6. update_time: 日期时间类型,有一个默认值为当前时间,并且在更新时会自动更新为新的时间。

这个脚本中还包含了两个函数 create_data()create_data2(),它们用于向数据库中插入数据。

create_data2() 函数中,首先获取了表中的第一个记录,然后将其read_count修改为2,并提交了事务。

请注意,在这个代码中,onupdate=datetime.now 表示在记录更新时,update_time 会被自动更新为当前时间。

query函数的使用

query 函数是 SQLAlchemy 中用于执行数据库查询操作的方法。它通常用于从数据库中检索数据。

基本用法

session.query(ModelClass)

这里的 ModelClass 定义的模型类,它对应了数据库中的表格。query 函数将返回一个查询对象,可以在该对象上继续添加过滤条件、排序规则等,最终执行查询操作以获取符合条件的数据。

常见用法示例

查询所有记录

result = session.query(User).all()

根据条件查询

result = session.query(User).filter(User.name == 'John').all()

查询第一条符合条件的记录

result = session.query(User).filter(User.name == 'John').first()

查询特定列的值

result = session.query(User.name, User.email).all()

添加排序规则

result = session.query(User).order_by(User.name).all()

使用聚合函数

from sqlalchemy import funcresult = session.query(func.count(User.id)).scalar()

连接查询 

result = session.query(User, Address).join(Address, User.id == Address.user_id).all()

使用filter_by

result = session.query(User).filter_by(name='John').all()

http://www.yayakq.cn/news/618620/

相关文章:

  • 百度网站开发基于什么语言软装设计图片
  • 县信用平台网站建设情况未满十八岁能用网上借钱吗
  • 如何删除在凡科上做的网站做电影网站多少带宽
  • 网站建设推荐信息湖北搜索引擎推广多少钱
  • 做网站点击软件wordpress系统版
  • 化妆品网站建设策划方案wordpress 谷歌收录
  • 湘潭网站seo磐石网络免费算命
  • 商业网站模板下载做营销型网站需要注意哪些点
  • 免费发布信息有哪些网站企业网站后台
  • 建设银行官方网站打不开啊长沙移动网站
  • 路由器 做网站怎么制作网页表格
  • 加强政务门户网站建设wordpress模板专业版
  • 域名到期与网站打不开注册安全工程师考哪四门
  • 个人展示网站模板杭州软件定制开发
  • 国内外网站开发技术网页制作图片代码
  • seo sem 外贸建站 网站建设 文化墙设计wordpress用户名是哪个文件夹
  • 会展相关网站建设建设网站需要做app吗
  • 网页的设计与应用的论文网络优化初学者难吗
  • 网站维护费用计入什么科目wordpress书签插件
  • dedecms怎么部署网站wordpress 文章自动分页
  • 医院为什么要做门户网站建设wordpress邮件通知
  • 影视网站源码建设企业没有做网站有的坏处
  • 一个专门做各种恐怖片的电影网站wordpress h1标签
  • 企业网站建设搜集资料wordpress循环输出
  • 网站维护公告模板网站开发思路怎么写
  • 笋岗网站建设如何做好推广
  • 网站建设服务公司宣传语言做rap的网站
  • 东莞网站建设+信科网络网站网站建设公
  • 做外贸的 需要什么样的网站做空包网站合法吗
  • 做爰免费视频网站品牌型网站制作