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

门户网站群建设seo免费推广

门户网站群建设,seo免费推广,宁波网站建设外包,网站建设易尔通【十二】Django中如何开启事务 事务是MySQL数据库中得一个重要概念 事务的目的:为了保证多个SQL语句执行成功,执行失败,前后保持一致,保证数据安全 【1】ACID是数据库事务的四个关键特性 它代表了原子性(Atomicity)、…

【十二】Django中如何开启事务

事务是MySQL数据库中得一个重要概念
事务的目的:为了保证多个SQL语句执行成功,执行失败,前后保持一致,保证数据安全             

【1】ACID是数据库事务的四个关键特性

  • 它代表了原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

    • 原子性(Atomicity):

      • 事务被视为一个不可分割的原子操作单元。

      • 这意味着要么全部操作成功并永久保存,要么全部操作失败并回滚到事务开始前的状态,不存在部分成功或部分失败的情况。

  • 一致性(Consistency):

    • 事务在执行前后,数据库都必须保持一致状态。

    • 这意味着事务执行前后,数据库中的数据必须满足所有定义的完整性约束,例如列级别的约束、外键关系等。

  • 隔离性(Isolation):

    • 事务之间应该相互隔离,每个事务的执行应该与其他事务的执行相互独立,互不干扰。

    • 隔离性确保了多个事务可以并发执行,而不会产生不一致的结果。

  • 持久性(Durability):

    • 一旦事务成功提交后,其所做的修改将永久保存在数据库中,即使发生系统故障或重启,数据也能够恢复到提交后的状态。
    • 持久性通过将事务日志写入非易失性存储介质来实现,如硬盘驱动器或固态硬盘。

【2】Django中如何开启事务

# 开启事务from django.db import transactiontry:with transaction.atomic():# SQL1# SQL2# SQL3"""写在同一个with语句的代码块都是属于同一个事务,要么同时成功,要么同时失败"""except Exception as e:print(e)  # 记录日志transaction.rollback()

【十三】ORM中常用的字段及参数

AutoField

  • int自增列,必须填入参数 primary_key=True。
  • 当model中如果没有自增列,则自动会创建一个列名为id的列。

IntegerField

  • 一个整数类型
  • 范围在 -2147483648 to 2147483647。(一般不用它来存手机号(位数也不够),直接用字符串存,)

BigIntegerField(IntegerField)

  • 长整型(有符号的)
  • 范围在 -9223372036854775808 ~ 9223372036854775807

CharField

  • 字符类型,必须提供max_length参数, max_length表示字符长度。

  • verbox_name 标识字段的注释

EmailField(CharField)

  • varchar(254)

DecimalField(Field)

  • max_digits,小数总长度
  • decimal_places,小数位长度

TextField(Field)

  • 文本类型
  • 支持大段内容,无字数限制

FileField(Field)

  • 字符串,路径保存在数据库,文件上传到指定目录
  • 参数:
    • upload_to = ""
      • upload_to = ""      上传文件的保存路径
        storage = None      存储组件,默认django.core.files.storage.FileSystemStorage

ImageField(FileField)

  • 字符串,路径保存在数据库,文件上传到指定目录
  • 参数:
    • upload_to = ""
      • upload_to = ""      上传文件的保存路径
        storage = None      存储组件,默认django.core.files.storage.FileSystemStorage

DecimalField(Field)

  • 10进制小数
  • 参数:
    • max_digits,小数总长度
    • decimal_places,小数位长度

BooleanField(Field)

  • 字段为布尔值
  • 数据库里面可以存 0/1

TimeField(DateTimeCheckMixin, Field)

  • 时间格式      HH:MM[:ss[.uuuuuu]]

FloatField(Field)

  • 浮点型

BinaryField(Field)

  • 二进制类型

DateField

  • 日期字段
  • 日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例。

DateTimeField

  • 日期时间字段
  • 格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例。

BigAutoField(AutoField)

  • bigint自增列,必须填入参数 primary_key=True

SmallIntegerField(IntegerField):

  • 小整数 -32768 ~ 32767

PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)

  • 正小整数 0 ~ 32767

BigIntegerField(IntegerField):

  • 长整型(有符号的) -9223372036854775808 ~ 9223372036854775807

【关系字段】

ForeignKey

  • 外键类型在ORM中用来表示外键关联关系,一般把ForeignKey字段设置在 '一对多'中'多'的一方。
  • ForeignKey可以和其他表做关联关系同时也可以和自身做关联关系。
to
  • 设置要关联的表
to_field
  • 设置要关联的表的字段
related_name
  • 反向操作时,使用的字段名,用于代替原反向查询时的’表名_set’。
on_delete
  • 当删除关联表中的数据时,当前表与其关联的行的行为。

models.CASCADE

  • 删除关联数据,与之关联也删除
models.DO_NOTHING
  • 删除关联数据,引发错误IntegrityError
models.PROTECT
  • 删除关联数据,引发错误ProtectedError
models.SET_NULL
  • 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空)
models.SET_DEFAULT
  • 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值)
models.SET
  • 删除关联数据,
    • a. 与之关联的值设置为指定值,设置:models.SET(值)
    • b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)
db_constraint
  • 是否在数据库中创建外键约束,默认为True。
OneToOneField(unique):ForeignKey(unqiue=True)
unique 

OneToOneField

  • 一对一字段。
  • 通常一对一字段用来扩展已有字段。(通俗的说就是一个人的所有信息不是放在一张表里面的,简单的信息一张表,隐私的信息另一张表,之间通过一对一外键关联)
to
  • 设置要关联的表。
to_field
  • 设置要关联的字段。
on_delete
  • 当删除关联表中的数据时,当前表与其关联的行的行为。(参考上面的例子)

【字段参数】

null

用于表示某个字段可以为空。

unique

如果设置为unique=True 则该字段在此表中必须是唯一的 。

Foregin(unique = True) ---->  OneToOneField
db_index

如果db_index=True 则代表着为此字段设置索引。

default

为该字段设置默认值。

DateField和DateTimeField

auto_now_add
  • 配置auto_now_add=True
  • 创建数据记录的时候会把当前时间添加到数据库。
auto_now
  • 配置上auto_now=True
  • 每次更新数据记录的时候会更新该字段。

【支持自定义字段】

# 自定义字段(了解)
自定义char类型字段:
class FixedCharField(models.Field):"""自定义的char类型的字段类"""def __init__(self, max_length, *args, **kwargs):self.max_length = max_lengthsuper(FixedCharField, self).__init__(max_length=max_length, *args, **kwargs)def db_type(self, connection):"""限定生成数据库表的字段类型为char,长度为max_length指定的值"""return 'char(%s)' % self.max_length

http://www.mmbaike.com/news/97726.html

相关文章:

  • 做画册封面的网站网站设计公司建设网站
  • thinkphp做的上线网站google收录提交入口
  • 网站各页面微信搜一搜seo优化
  • 做美食软件视频网站有哪些友情链接网站大全
  • 使用模板怎么建站推广app拉人头赚钱
  • 做程序员招聘的网站神童预言新冠2023结束
  • 一个简单的动态页面网站需要数据库吗搜索seo怎么优化
  • 那里有专做粮食的网站抖音搜索关键词排名
  • php企业公司网站源码东莞搜索网络优化
  • 做外国网站自媒体手游推广渠道和推广方式
  • 厦门市建设协会网站seo公司杭州
  • wordpress怎么修改管理的urlseo网站排名优化工具
  • wordpress建站数据库百度seo搜索引擎优化培训
  • 哪里有微信网站开发公司高效统筹疫情防控和经济社会发展
  • 企业网站的网址有哪些平面设计正规培训机构
  • 网络营销做女鞋的网站设计推广计划方案
  • 吴江政府网站建设局百度搜索网
  • 网站运营面试问题如何自己弄个免费网站
  • 陕西做网站的公司电话什么是搜索引擎销售
  • 网站开发终止协议书百度引擎搜索网址
  • 网站如何做攻击防护网络推广方法技巧
  • 常州网站建设多少钱福州seo顾问
  • wordpress菜单高亮广州网站优化公司排名
  • 网站源码破解版百度云网盘资源
  • 工商年检在哪个网站做可以发布软文的平台
  • 电子政务网站设计深圳博惠seo
  • 导出WordPress文件格式windows优化大师电脑版
  • WordPress无刷新音乐网站应该如何进行优化
  • javascript做网站重要吗百度关键字排名软件
  • 四川做网站有哪些公司海外推广营销系统