Django视图文件损坏,能否恢复线上运行版本的views.py?
恢复线上运行的Django views.py文件方法
- 直接从线上服务器提取:通过SSH登录到线上服务器,找到Django项目的部署目录,直接复制其中的
views.py文件到本地。这是最稳妥的方式,因为线上正在运行的就是这个版本的文件,操作时注意只读访问,避免影响正在运行的服务。 - 从运行的Python进程提取代码:
- 先通过
ps aux | grep django找到Django进程的PID - 使用
pyrasite工具:执行pyrasite <PID> dump_modules.py,工具会生成包含已加载模块代码的文件,从中找到对应app的views模块代码即可 - 或者用gdb:附加到目标进程后执行
call PyRun_SimpleString("import inspect; open('/tmp/recovered_views.py', 'w').write(inspect.getsource(your_app_name.views))"),替换your_app_name为你的实际应用名称,之后从/tmp/recovered_views.py获取文件
- 先通过
- 借助WSGI服务器工具提取:如果使用uWSGI等WSGI服务器,可以通过其管理接口或内置命令导出已加载的
views模块代码,比如uWSGI的py-call命令执行代码导出操作
内容的提问来源于stack exchange,提问作者Dr. Sarah
相关产品推荐
相关产品推荐

