1. Md5加密
# 加密
def md5(raw):
import hashlib
# md5加密实例化
md5 = hashlib.md5()
# 需要的话进行utf8编码
md5.update(raw.encode('utf8'))
return md5.hexdigest()
2. sha256加密
import hashlib
import random
import re
# 封装sha256
def sha56(raw):
# 实例化sha256对象
sha56 = hashlib.sha256()
# 把要加密的密码,进行update操作并转成utf-8,不写默认是utf-8
sha56.update(raw.encode('utf-8'))
# 返回一个sha56的16进制的格式
return sha56.hexdigest()
# 加盐,随机盐
def random_safe(n=5):
# 定义一个简单的字符串
str = '23456789abcdefgjkmnpqrestuvwxyz'
# 定义一个空值,将每次循环的随机数,拼接到ret上。然后返回。
ret = ''
for i in range(n):
# len出字符串的长度,利用下标进行随机抽出。
ret += str[random.randint(0,30)]
return ret
# 正则验证邮箱
def check_email(email):
ret = re.match(r'(\w+)@(\w+)\.(\w){2,}$',email)
if ret:
# 满足条件
return True
else:
# 不满足条件
return False
# 正则验证密码
def check_passwd(password):
pattern = re.match("^(?=.*[a-zA-Z].*)(?=.*[\d].*)(?=.*_.*).{6}$",password)
if pattern:
return True
else:
return False
3. 时间戳封装
import random
from datetime import datetime
def generater_img(ext='pag'):
# 格式化时间+随机数+文件的后缀名
return datetime.now().strftime('%Y%m%d%H%M%S') + str(random.randint(10000,99999)) + '.' + ext
4. 删除外键关系
Django取消级联删除----删除外键关系
user = models.ForeignKey(User,blank=True,null=True,on_delete=models.SET_NULL)
并且SET_NULL只有在null为True的时候,才可以使用
# 删除学生外键关系,根据id把相应的数据查询出来后,把外建改成None就OK了
class Pop_student(APIView):
def get(self,request):
mes={}
id = request.GET.get('id')
stu = Student.objects.filter(id=id).first()
stu.teacher_id=None
stu.save()
mes['code']=200
mes['message']='删除成功'
return JsonResponse(mes)