介绍
使用方法:
1. 将第 1 个脚本命名为 test_main.py,将第 2 个脚本命名为 test_sub.py,并将它们放在同一个目录下
2. 给此脚本添加执行权限
3. 用 python3 命令执行第一个脚本
第一个脚本
from test_sub import *
a=2
b=3
out=nsum(a,b)
print(out)
第二个脚本
def nsum(x,y):
out = x + y
return(out)
使用方法:
1. 将第 1 个脚本命名为 test_main.py,将第 2 个脚本命名为 test_sub.py,并将它们放在同一个目录下
2. 给此脚本添加执行权限
3. 用 python3 命令执行第一个脚本
from test_sub import *
a=2
b=3
out=nsum(a,b)
print(out)
def nsum(x,y):
out = x + y
return(out)
1) 确保表里的字段都缺一不可(也就是具有原子性)
2) 确保表里的字段都和主键直接相关
# fdisk /dev/sda
(补充:这里以给 /dev/sda 硬盘分区为例,键入以上命令之后,可以根据提示进行分区操作)
# fdisk -l
1. 将第 1 个脚本命名为 test_main.py,将第 2 个脚本命名为 test_sub.py,并将它们放在同一个目录下
2. 给 2 个脚本添加执行权限
3. 用 python3 命令执行第 1 个脚本
import subprocess
test=subprocess.Popen(['python3', './test_sub.py'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out=test.decode().strip()
print(out)
def sum(a,b):
return(a + b)
c = 4
b = 2
print(sum(c,b))
本实验是接着 《Django 自定义逻辑添加(通过自定义 save 对象实现)(一次性完成多对多表数据的插入)》而继续的
将 mysite/user/models.py 中的以下内容:
class Clazz(models.Model):
cname = models.CharField(max_length=30)
class Student(models.Model):
sname = models.CharField(max_length=30)
score = models.PositiveBigIntegerField()
cls = models.ForeignKey(Clazz,on_delete=models.CASCADE)
def __str__(self):
return u'Student:%s,%s'%(self.sname,self.score)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
try:
self.cls = Clazz.objects.get(cname=self.cls.cname)
except Clazz.DoesNotExist:
self.cls = Clazz.objects.create(cname=self.cls.cname)
#Insertion of student table
models.Model.save(self, force_insert=False, force_update=False,using=None, update_fields=None)
修改为:
class Clazz(models.Model):
cname = models.CharField(max_length=30)
class Student(models.Model):
sname = models.CharField(max_length=30)
score = models.PositiveBigIntegerField()
cls = models.ForeignKey(Clazz,on_delete=models.CASCADE)
def __str__(self):
return u'Student:%s,%s'%(self.sname,self.score)
from django.db.transaction import atomic
@atomic
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
try:
self.cls = Clazz.objects.get(cname=self.cls.cname)
except Clazz.DoesNotExist:
self.cls = Clazz.objects.create(cname=self.cls.cname)
#Insertion of student table
models.Model.save(self, force_insert=False, force_update=False,using=None, update_fields=None)