-
锁:共享锁、排他锁
- lock in share mode 共享锁开启方式 (都要先开启事物,begin)
- for update 排他锁开启 (先 begin)
- 表锁举例:lock table app01_publish write
- unlock tables;
- create、update、delete、操作时,MySQL自动加行级互斥锁
锁 1.原生中 select * from t1 where id=1 for update;(写这句前得先开启事物,begin) 2.orm中 models.T1.objects.select_for_update().filter(id=1)
-
事物四大特性:原子性、永久性、隔离性、一致性。
原生SQL中开启事物的两种方式: 1.start transaction; 2.beigin; 提交事物 commit; 回滚 roll_back orm中开启事物的三种方式 1. DATABASES = { 'ENGINE':'django.db.backends.mysql', 'NAME':'day58', 'HOST':'127.0.0.1', 'PORT':3306, 'USER':'root', 'PASSWORd':'root', 'ATOMIC_REQUESTS':TRUE, # 全局开启事物,绑定的是http请求响应整个过程 } 2. from django.db import transaction @transaction.atomic def viewfunc(request): do_stuff() 取消事物 @transaction.non_atomic_requests def my_view(request): do_stuff() 3.上下文 from django.db import transaction def viewfunc(request): do_stuff() with transaction.atomic(): do_more_stuff() do_other_stuff()
-
Ajax(jQuery中的):两个特性
- 异步请求
- 局部刷新
$('#button').click(function(){ $.ajax({ url:'/login/', # 请求路径 type:'post', # 请求方式 data:{ # 请求携带数据 uname:$('#username'.val()), pwd:$('#password'.val()), csrfmiddlewaretoken:$('[name=csrfmiddlewaretoken]') #csrfmiddlewaretoken:"{{csrf_token}}" }, success:function(res){ console.log(res) }, error:function(jqXHR,textStatus,err){ console.log(arguments) } }) }) 爬虫中的请求: ret = requests.post('/login/',data={}) print(ret.content)
-
外部文件导入的方式来写js代码,那么JS代码汇总不能用Django的模板语法,因为HTML文件的加载顺序:URL—视图----HTML模板渲染——return给浏览器—浏览器渲染——script的SRC—才去请求js文件----那么JS文件代码此时才去加载到你的HTML里面。