前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django 代码保护

Django 代码保护

作者头像
obaby
发布2023-02-22 14:34:07
9950
发布2023-02-22 14:34:07
举报
文章被收录于专栏:obaby@mars

常用的代码保护不外乎下面几种方法:

代码语言:javascript
复制
发行 .pyc 文件
代码混淆
使用 py2exe
使用 Cython

django发布的需要以服务运行,通过其他的几种方法来实现保护,都不太现实。所以发布可以通过cython的方式实现。

  1. 安装cython
代码语言:javascript
复制
pip3 install cython

2.在项目目录创建setup.py 编辑内容如下,其中“app/file1.py”是你所要打包的py文件名,这儿需要把app下所有的py文件都添加进来(当然也可以添加部分)

代码语言:javascript
复制
from distutils.core import setup

from Cython.Build import cythonize

fileSet = set()

fileSet.add("UserBase/models.py")
fileSet.add("UserBase/views.py")

setup(

    ext_modules=cythonize(fileSet)

)

3.运行setup.py

代码语言:javascript
复制
python3 setup.py build_ext --inplace 

编译后会生成对应的so文件。

4.删除原始py文件,并且重启服务

代码语言:javascript
复制
python manage.py runserver

参考链接:

https://blog.csdn.net/m0_59882674/article/details/118405486

ps:

在开发环境尽量不要编译为so文件,否则新添加的代码可能会无法识别。如果提示如下的类似错误:

代码语言:javascript
复制
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/zhongming/PycharmProjects/djangoProject/GreenPower/UserBase/urls.py", line 18, in <module>
    path(r'app-menu-data/<int:pk>/', views.appmenu_detail),
AttributeError: module 'UserBase.views' has no attribute 'appmenu_detail's

删除掉编译好的so文件即可。

☆文章版权声明☆

* 网站名称:obaby@mars

* 网址:https://h4ck.org.cn/

* 本文标题: 《Django 代码保护》

* 本文链接:https://h4ck.org.cn/2022/08/django-%e4%bb%a3%e7%a0%81%e4%bf%9d%e6%8a%a4/

* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


分享文章:

相关文章:

  1. Django 限制访问频率
  2. ImportError: DLL load failed while importing win32console【pywin32】
  3. ubuntu uwsgi No module named ‘django’
  4. Django REST framework foreignkey 序列化
  5. Django APScheduler + uwsgi 定时任务重复运行
  6. django 主动抛出 403 异常
  7. 再谈《Django 限制访问频率》
  8. ngix+uwsgi+django 以及阿里云rds数据库数据导入
  9. Django input value值被截断
  10. Django admin Foreignkey ManyToMany list_display展示
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年8月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 相关文章:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档