caesar 的作用:
for alph in s: #是遍历 s 中每一个字符
pos1 #找这个字符在lower中的位置,是小写字母才有,否则 -1
pos2 #找这个字符在upper中的位置,是大写字母才有,否则 -1
if pos1 != -1 or pos2 != -1: #其中一个pos不是-1,也就是小写字母或大写字母
result += express1 if condition else express2
#express1 if condition else express2 表示condition为True时取express1的值,否则取express2的值
#lower[(pos1+k)%len(lower)],就是从lower里面取原来位置后移k位的字母,即:如果是a就换成c,如果是y就换成a(y是最后一个,又从头开始取,通过%取模实现)
else:
result += alph #非字母不转换,如空格
上面既写了函数,也调用了,直接运行就Ok
函数的功能是将字符串s中所有的字母向后移动k个位置
def find(request):
#sql = 'select * from student'
# django 也可以执行原生的sql语句
#result = Student.objects.raw(sql)
# 查询name = tom1的数据
# result = Student.objects.filter(name='tom1')
result = Asd.objects.filter(id=1)
"""
result为<class 'django.db.models.query.QuerySet'>的对象
需要进行数据处理
"""
arr = []
for i in result:
content = {'文件': i.file, 'ID': i.id}
arr.append(content)
#把i.file1字节流写入新的文件f2
with open("app1/img/img1_copy.jpg", "wb") as f2:
f2.write(i.file)
print(arr)
print(type(arr))
return HttpResponse('数据下载完毕')
通过debug可以看到在循环i中获取到的file1属性是一个字节流bytes类型,接下来我们就拿它开刀,将字节流写入某个位置
在find函数中添加写入文件的部分
成功!!!