Code前端首页关于Code前端联系我们

Django项目如何修改文件自动重启,远程API方法分享

terry 2年前 (2023-09-24) 阅读数 75 #后端开发
如何编辑Django项目中的文件自动重启,远程API方法分享 想做一个django项目自动重启,可以收集编辑py文件并重启

Project/uwsgi.ini

[uwsgi]
master = true
processes = 2
threads = 2
chdir = /www/wwwroot/leiyufatong/soogor
wsgi-file= /www/wwwroot/xxxxx/soogor/config/wsgi.py
touch-reload = /www/wwwroot/xxxxx/soogor/config/restart.py#在这个路径加个一个自定义的py文件,用来形成触发
http = 0.0.0.0:8002
logto = /www/wwwroot/xxxxx/soogor/logs/error.log
chmod-socket = 660
vacuum = true
master = true
uid=www
gid=www
max-requests = 1000
#以上代码不需要修改,只须加入下方代码
py-autoreload = 1  # 代码修改后自动重启

如果只添加代码“py-autoreload = 1”,当我们更改文件后,发现py文件被更改,项目会自动重启。

但是

在当前的操作中我们发现最好不要更改程序文件。我们只能更改不重要的文件,因此我们构建了“www/wwwroot/xxxxx/soogor/config/restart.py”文件。本来以为修改这个文件会自动重启,但是发现当程序修改这个文件的时候,项目并没有重启,所以我们用touch的方式添加了

touch-reload = /www/wwwroot/xxxxx/soogor/config/restart.py#在这个路径加个一个自定义的py文件,用来形成触发

这一行以及Collect和add代码,所以我们只需要更改这个文件。Uwsig将重启。

这一步是实现远程重启。

Django远程API重启项目方法分享

设置好上面的方法后,我们就可以根据自己的需求来处理了

views.py

restart_DIR = os.path.join(settings.BASE_DIR, "config/restart.py")
#项目重启代码
def sysrestart():
    print("项目尝试重启")
    time.sleep(1)
    with open(restart_DIR, "w") as fields:
        now = str(datetime.datetime.now())
        fields.write(now)
    return JsonResponse(
        {"status": 200, "message": "成功", "data": ""},
        json_dumps_params={"ensure_ascii": False},
        content_type="application/json; charset=utf-8",
    )
#远程验证项目重启状态
def syskey(request):
    if request.flag:
        return JsonResponse(
            {"status": 200, "message": "成功", "data": ""},
            json_dumps_params={"ensure_ascii": False},
            content_type="application/json; charset=utf-8",
        )
    else:
        return JsonResponse(
            {"status": 501, "message": "权限失败", "data": request.message},
            json_dumps_params={"ensure_ascii": False},
            content_type="application/json; charset=utf-8",
        )

API/urls.py

from websetting import views as sg_setting
urlpatterns = [
    path("sysrestart", sg_setting.sysrestart),  # 重启项目
    path("syskey", sg_setting.syskey),  # 核验系统情况
]

Template html就这个这样我们就可以在更改静态配置文件后远程重启项目。我们不用去服务器重启项目,效率大大提高了

Django项目如何修改文件自动重启,远程API方法分享

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门