事物

  在这里指,将一些关于数据库的一系列操作,打包成一个原子性操作,意思是这一系列操作必须全部执行成功,如果,其中某个操作没有成功,那么这一系列操作都将滚回到之前没执行的状态,包括其中执行成功的某些操作,也将回滚到原来的状态

达成事物:

1、要从代码级别去处理,如下面的示例

2、如果数据库选择的是mysql,引擎必须是为innodb,

for example:

解释器为python3.6.2;

Django框架;

pycharm IED;

class UserProfile(models.Model):
    """
    用户信息
    """
    name = models.CharField('姓名', max_length=32)
    email = models.EmailField('邮箱')
    phone = models.CharField('座机', max_length=32)
    mobile = models.CharField('手机', max_length=32)

    class Meta:
        verbose_name_plural = "用户表"

    def __str__(self):
        return self.name

class Server(models.Model):
    hostname = models.CharField(max_length=128, unique=True)
    sn = models.CharField('SN号', max_length=128, db_index=True)

models.py

from django.db import transaction
from django.shortcuts import HttpResponse
def foo(request):
    try:
        with transaction.atomic():
                    models.UserProfile.objects.create(name="wang",email="123@qq.com",phone=18888231,mobile=11111111)
            models.Server.objects.create(hostnae="ddd",sn="xxx2333xxx")
    except Exception as e:
        return HttpResponse("数据有误,已回滚")
    return HttpResponse("数据写入成功")

views.py

from django.conf.urls import url

from api import views
urlpatterns = [
    url(r'^server.html', views.server),
    url(r'^foo', views.foo),

]

urls.py

Django 事物的更多相关文章

  1. django事物回滚

    往数据库写入数据时,不经意间就会写入不完整的数据,我们称之为脏数据.事务管理(transaction)可以防止这种情况发生.事务管理一旦检测到写入异常,会执行回滚操作,即要么写入完整的数据,要么不写入 ...

  2. Web项目之Django基础

    Django目录: python项目Django(web服务) python项目Django(HTTP协议) python项目Django(Django的安装与使用) python项目Django(U ...

  3. Django中的ORM相关操作:F查询,Q查询,事物,ORM执行原生SQL

    一    F查询与Q查询: 1 . F查询: 在上面所有的例子中,我们构造的过滤器都只是将字段值与某个常量做比较.如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的 ...

  4. Django值聚合,分组,事物,cookie,session

    1,聚合(aggregate):是queryset的一个 终止语句,它返回一个包含键值对的字典,键是的名称是聚合值的标识符,值是计算出来的聚合值,键的名称是按照字段和聚合函数自动生成出来的.用到的内置 ...

  5. $Django 客户端->wsgi->中间组件->urls->views(model,template) 总结+补充(事物,choices,inclusion_tag)!

    1 HTTP协议:(重点)  -请求   -请求首行    -GET /index HTTP/1.1 \r\n   -请求头部    -key:value------>\r\n分割    _ke ...

  6. Django 的F查询与Q查询,事物

           F查询 Django 提供 F() 来做这样的比较.F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值 示例1: 查询出卖出数大于库存数的商品 from ...

  7. Django搭建及源码分析(三)---+uWSGI+nginx

    每个框架或者应用都是为了解决某些问题才出现旦生的,没有一个事物是可以解决所有问题的.如果觉得某个框架或者应用使用很不方便,那么很有可能就是你没有将其使用到正确的地方,没有按开发者的设计初衷来使用它,当 ...

  8. 用django搭建一个简易blog系统(翻译)(一)

    Django 入门 原始网址: http://www.creativebloq.com/netmag/get-started-django-7132932 代码:https://github.com/ ...

  9. 用Django Rest Framework和AngularJS开始你的项目

    Reference: http://blog.csdn.net/seele52/article/details/14105445 译序:虽然本文号称是"hello world式的教程&quo ...

随机推荐

  1. wue父子通信和动态路由 还有点击事件直接赋值传参数

    这种直接在后面赋值 传值

  2. Hybrid设计--Hybrid中Native能力的设计

    稍微成熟的团队,header一定是不利于业务的UI组件,这个组件会封装在view层,方便前端使用.对业务前端开发来说,不用关注header是如何实现的,只用框架层释放的API.(一个前端有一个自己的U ...

  3. 第一次使用theos自己遇到的坑

    这里自己遇到的一些问题,总结一下: 第一个问题建立好theos工程后make出现 xcrun: error: SDK "iphoneos" cannot be located xc ...

  4. 第五章:creat statechart diagrams for classes and use cases

  5. InstallShield2015制作安装包----------卸载后删除安装目录和文件

    卸载程序后,一般是需要将安装目录清除干净.但是,如果程序运行中有文件生成,这时InstallShield自带的卸载程序,不会卸载这些运行时生成的文件. 卸载不干净,可能会对下次程序的安装,和安装后的运 ...

  6. WebSocket.之.基础入门-建立连接

    WebSocket.之.基础入门-建立连接 1. 使用开发工具(STS.Eclipse等)创建web项目.如下图所示,啥东西都没有.一个新的web项目. 2. 创建java类.index.jsp页面. ...

  7. JOptionPane

    2018-10-30 14:44:43 开始写 作者:tjk123456 来源:CSDN 原文链接 建议阅读官方资料:https://docs.oracle.com/javase/7/docs/api ...

  8. numpy.random随机数生成

    seed 确定随机数生成器的种子 permutation 返回一个序列的随机排列或返回一个随机排列的返回 shuffle 对一个序列就地随机乱序 rand 产生均匀分布的样本值 randint 从给定 ...

  9. python安装cv2

    pip install opencv-python

  10. 1、第一个android APP

    https://blog.csdn.net/tongyong128/article/details/68484726