Django — isdangerous 包的使用

5 篇文章 0 订阅
5 篇文章 0 订阅

 isdangerous包

questions: itsdangerous用来解决什么问题,为什么需要用到itsdangerous?
安全的加密解密:
        1、使用没有逆运算的公式,只能加密不能解密。
        2、可逆,能加密解密。保证安全性——私钥。

itsdangerous内部默认使用了HMAC和SHA1来签名,基于 Django 签名模块。它也支持JSON Web 签名 (JWS)。

 itsdangerous模块的参考资料链接 :

https://itsdangerous.readthedocs.io/en/1.1.x/

通过资料里的API ,可以看到一个类:

class itsdangerous.serializer.Serializer(secret_keysalt=b'itsdangerous'serializer=Noneserializer_kwargs=Nonesigner=Nonesigner_kwargs=Nonefallback_signers=None)

itsdangerous这个包中提供了一个class Serializer 可根据私钥创建一个对象,创建对象后可调用很多方法,常用的dumps()加密\loads()解密

以Django web 项目 加密 json数据格式为列:

需使用的类:TimedJSONWebSignatureSerializer

timed:加密信息有时效性

json: 表示加密信息为json格式

web: 表示是网站中使用的加密签名

serializer:序列化器,处理器

code:

from itsdangerous.jws import TimedJSONWebSignatureSerializer
from django.conf import settings

def dumps(json,expires):
    """
    将字典加密,返回加密字符串
    :param json: 字典
    :return: 字符串
    """
    serializer = TimedJSONWebSignatureSerializer(settings.SECRET_KEY,expires)
    json_str = serializer.dumps(json).decode()
    return json_str

def loads(json_str,expires):
    """
    将加密字符串解密
    :param json_str: 加密字符串
    :return: 字典
    """
    serializer = TimedJSONWebSignatureSerializer(settings.SECRET_KEY, expires)
    try:
        json = serializer.loads(json_str)
    except:
        return None
    else:
        return json

 文章为自己学习所记录,目的是方便自己查阅。想知道isdangerous更多内容的请查阅文档资料(文中已给链接),文章内容若有误,欢迎评论区指正。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用PyInstaller打使用Celery的Django应用程序时,你需要注意一些特殊的配置。下面是一个基本的步骤: 1. 确保你已经安装了PyInstaller和Celery: ``` pip install pyinstaller celery ``` 2. 进入你的Django项目的根目录,并创建一个新的目录用于存放打后的文件: ``` mkdir dist ``` 3. 在项目根目录下创建一个名为`myapp.spec`的文件,用于配置PyInstaller的打选项。在该文件中添加以下内容: ``` # myapp.spec import django import os from PyInstaller.utils.hooks import collect_submodules hiddenimports = collect_submodules('django') hiddenimports += collect_submodules('celery') a = Analysis(['manage.py'], pathex=[os.getcwd()], hiddenimports=hiddenimports, hookspath=None) a.datas += [ (os.path.join(django.__path__[0], 'conf', 'project_template', 'manage.py'), 'django/conf/project_template/manage.py') ] pyz = PYZ(a.pure, a.zipped_data, cipher=None) exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='manage', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, runtime_tmpdir=None, console=True ) ``` 4. 在项目根目录下执行以下命令,使用`myapp.spec`文件进行打: ``` pyinstaller myapp.spec ``` 5. 打完成后,在`dist`目录下会生成可执行文件。你可以将整个`dist`目录复制到其他机器上运行你的Django应用程序。 请注意,上述步骤只是基本配置,实际情况可能因项目结构和依赖项而有所不同。你可能还需要在`myapp.spec`文件中添加其他的隐藏导入项和数据文件,以确保打后的应用程序能够正常运行Celery任务。此外,确保在打过程中含了Celery所需的配置文件和依赖项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值