建设网站的实验报告,网站开发用什么软件开发,织梦如何修改网站内容,商丘58同城招聘网最新招聘如何开启事务 
事务的目的#xff1a;为了保证多个SQL语句执行成功#xff0c;执行失败#xff0c;前后保持一致#xff0c;保证数据安全 
ACID属性#xff1a; A#xff1a;原子性#xff08;Atomicity#xff09;#xff1a;指事务是原子的#xff0c;对事务中的操…如何开启事务 
事务的目的为了保证多个SQL语句执行成功执行失败前后保持一致保证数据安全 
ACID属性 A原子性Atomicity指事务是原子的对事务中的操作要么全部成功要么全部失败。例如如果一次购物过程中有两个购买操作一个操作成功另一个失败那么购物过程会被取消购物车会回滚以保证原子性不受影响。 C一致性Consistency指操作后的数据库从一个一致状态转化为另一个一致状态。例如如果某用户时区变化数据库中记录的时间也会随之变化以保证一致性。 I隔离性Isolation指数据库中正在执行的事务看不到其他事务的活动。例如如果两个客户同时向一个银行账户汇款银行会先锁定该账户并处理一个请求再锁定该账户并处理另一个请求以保证隔离性。 D持久性Durability指一个提交的事务对数据库中的数据修改是永久有效的。例如一次交易提交时数据库中的数据对所有客户端是可见的以保证持久性。 
start transaction; commit; rollback; 
开启事务 from django.db import transactiontry:with transaction.atomic():# SQL1# SQL2# SQL3写在同一个with语句的代码块都是属于同一个事务要么同时成功要么同时失败except Exception as e:print(e)  # 记录日志transaction.rollback() 
常见的ORM字段类型 
AutoField int自增列必须填入参数 primary_keyTrue。当model中如果没有自增列则自动会创建一个列名为id的列。 
IntegerField 一个整数类型,范围在 -2147483648 to 2147483647。 
CharField 字符类型必须提供max_length参数 max_length表示字符长度。 
DateField 日期字段日期格式 YYYY-MM-DD相当于Python中的datetime.date()实例。DateTimeField 日期时间字段格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]相当于Python中的datetime.datetime()实例 
BigAutoField(AutoField) - bigint自增列必须填入参数 primary_keyTrue 
SmallIntegerField(IntegerField): - 小整数 -32768  32767 
PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField) - 正小整数 0  32767 
BigIntegerField(IntegerField): - 长整型(有符号的) -9223372036854775808  9223372036854775807 
BooleanField(Field) - 布尔值类型 True/False  1/0 
name varchar(1024) content text; 
TextField(Field) - 文本类型 
FileField(Field) - 字符串路径保存在数据库文件上传到指定目录 - 参数 upload_to        上传文件的保存路径 storage  None      存储组件默认django.core.files.storage.FileSystemStorage 
ImageField(FileField) - 字符串路径保存在数据库文件上传到指定目录 - 参数 upload_to        上传文件的保存路径 storage  None      存储组件默认django.core.files.storage.FileSystemStorage 
TimeField(DateTimeCheckMixin, Field) - 时间格式      HH:MM[:ss[.uuuuuu]] 
FloatField(Field) - 浮点型 
DecimalField(Field) - 10进制小数 - 参数 max_digits小数总长度 decimal_places小数位长度 
BinaryField(Field) - 二进制类型 
ORM字段参数 
null 
用于表示某个字段可以为空。 
unique 
如果设置为uniqueTrue 则该字段在此表中必须是唯一的 。 
db_index 
如果db_indexTrue 则代表着为此字段设置索引。 
default 
为该字段设置默认值。 
DateField和DateTimeField 
auto_now_add 
配置auto_now_addTrue创建数据记录的时候会把当前时间添加到数据库。 
auto_now 
配置上auto_nowTrue每次更新数据记录的时候会更新该字段。 
关系字段 
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(unqiueTrue) unique  
无限极分类 自定义字段 
自定义char类型字段 
class FixedCharField(models.Field):自定义的char类型的字段类def __init__(self, max_length, *args, **kwargs):self.max_length  max_lengthsuper(FixedCharField, self).__init__(max_lengthmax_length, *args, **kwargs)def db_type(self, connection):限定生成数据库表的字段类型为char长度为max_length指定的值return char(%s) % self.max_length 
图书管理系统