Python中文
首页
教程
问答
标签
搜索
登录
注册
在Djang中为每个请求回滚db事务
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在考虑将基于Django的站点从框架的v1.4升级到v1.9。该站点在我们的基础设施中扮演着重要的角色,并且可以看到可观的流量。我们的测试套件很好,但还没有达到100%的覆盖率。正因为如此,我希望以安全和保守的方式进行升级。在</p> <p>我受到了Github最近对<a href="http://githubengineering.com/scientist/" rel="nofollow">rewriting major features</a>的方法的启发,它将新代码和旧代码作为实验和控件运行,返回旧代码的结果并记录新代码中的任何差异或错误。在</p> <p>因为我正在升级框架版本本身(以及支持库),所以我不能只使用一个Python的Scientist端口,比如<a href="https://github.com/joealcorn/laboratory" rel="nofollow">laboratory</a>。在我看来,最简单的方法就是分离站点本身,将每个请求发送到两个站点,但只从控制站点提交并返回结果。在</p> <p>为此,我需要实验站点在与控制站点相同的数据库上运行,但不进行提交。在我看来,我应该能够通过编写某种中间件来实现这一点,在请求-响应周期结束时回滚当前事务,但我不确定如何实现这一点。在</p> <p>所以,我的问题是:<strong>如何将每个请求的每个事务回滚到django1.9站点?</strong></p> <p><strong>更新:</strong></p> <p>经过进一步的研究,我似乎可以通过启用<a href="https://docs.djangoproject.com/en/1.9/topics/db/transactions/#tying-transactions-to-http-requests" rel="nofollow">^{<cd1>}</a>(有史以来最好的设置名)来获得这个行为对于数据库,并使用带有回滚事务的<a href="https://docs.djangoproject.com/en/1.9/topics/http/middleware/#process-response" rel="nofollow">^{<cd2>}</a>方法的自定义中间件。我欢迎改进或替代品。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果要使用<code>@transaction.atomic</code>并仍然管理异常,可以将其与<code>with</code>语句一起使用:</p> <pre><code>try: with transaction.atomic(): a.save() except IntegrityError, e: return .... # Manage the response </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
3 回答
无法使用Django\u mssql\u后端迁移到外部hos
2 回答
无法使用Django&Python3.4连接到MySql
6 回答
无法使用Django+nginx上载媒体文件
2 回答
无法使用Django1.6导入名称模式
3 回答
无法使用Django1.7和mongodb登录管理站点
10 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
6 回答
无法使用Djangockedi验证CBV中的字段
4 回答
无法使用Djangocketditor上载图像(错误400)
6 回答
无法使用Djangocron进行函数调用
7 回答
无法使用Djangofiler djang上载文件
9 回答
无法使用Djangokronos
7 回答
无法使用Djangomssql provid
6 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
1 回答
无法使用Djangomssq迁移Django数据库
7 回答
无法使用Djangonox创建用户
8 回答
无法使用Djangopyodb从Django查询SQL Server
3 回答
无法使用Djangopython3ldap连接到ldap
9 回答
无法使用Djangoredis连接到redis
6 回答
无法使用Django中的FK创建新表
3 回答