zoukankan      html  css  js  c++  java
  • django中的事务

    客户A要给客户B转一笔钱,这个在数据库中需要进行两步: 1.客户A减钱  2.客户B加钱

    如果在第一步结束后,服务器出现异常,停下了,第二步没有进行,如果数据库使用了事务操作,真的出现异常的时候,前面的操作会进行回滚。

    简单的说就是:要么全部执行成功,要么一个都不执行

    这个回滚的操作就叫做数据库的原子性操作。

    这是在MySQL数据库中,我们在Django的ORM中如何进行呢?


    2.通过ORM创建生成表 from django.db import models class UserInfo(models.Model): username = models.CharField("用户",max_length=32) balance = models.CharField("余额",max_length=32) 注意啊:踩过的坑,涉及金融计算,涉及小数啊,要求特别精确的,我们用字符串存储。 如果是金融计算的话,我们用一个decimal来进行计算。 3.我们给数据库加两条数据,用来模拟两个用户之间的转账 from django.shortcuts import render,HttpResponse from app01 import models from django.db import transaction from django.db.models import F def index(request): try: with transaction.atomic(): models.UserInfo.object.filter(id=1).update(balance=F("balance")-100) models.UserInfo.object.filter(id=2).update(balance=F("balance")+100) except Exception as e: return HttpResponse("出现错误<%s>"%str(e)) return HttpResponse("执行成功")
  • 相关阅读:
    DELPHI中GetTickCount 函数的应用
    Delphi 中 StrToIntDef 函数的应用
    TeeChart 动态建曲线
    历遍指定文件夹下的文件
    DELPHI 获取错误信息
    delphi播放flash
    C# 获取当前路径方法
    DELPHI 修改系统分辨率
    SQL字符串处理函数 Yang
    Linux基本操作 Yang
  • 原文地址:https://www.cnblogs.com/chvv/p/10081094.html
Copyright © 2011-2022 走看看