Django项目如何修改文件自动重启,远程API方法分享
如何编辑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就这个这样我们就可以在更改静态配置文件后远程重启项目。我们不用去服务器重启项目,效率大大提高了
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。