提交 9dfafd5d 编写于 作者: H hjdhnx

增加外部更新环境变量的方法示例

上级 820165d9
无法预览此类型文件
......@@ -14,7 +14,7 @@ from utils.log import logger
import shutil
from utils.update import getLocalVer,getOnlineVer,download_new_version,download_lives,copy_to_update
from utils import parser
from utils.env import get_env
from utils.env import get_env,update_env
from utils.web import getParmas,verfy_token
from js.rules import getRules,getCacheCount
from utils.parser import runJScode
......@@ -69,6 +69,17 @@ def admin_save_conf(): # 管理员界面
res_id = lsg.setItem(key,value)
return R.success(f'修改成功,记录ID为:{res_id}')
@admin.route('/update_env',methods=['POST'])
def admin_update_env(): # 更新环境变量中的某个值
if not verfy_token():
# return render_template('login.html')
return R.error('请登录后再试')
key = getParmas('key')
value = getParmas('value')
print(f'key:{key},value:{value}')
ENV = update_env(key,value)
return R.success(f'修改成功,最新的完整ENV见data',data=ENV)
@admin.route("/view/<name>",methods=['GET'])
def admin_view_rule(name):
......
3.9.30
\ No newline at end of file
3.9.30beta1
\ No newline at end of file
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File : 外部更新环境变量.py
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
# Date : 2022/12/6
import requests
class Drpy:
def __init__(self,url,username='admin',password='drpy'):
s = requests.session()
data = {
'username': username,
'password': password,
}
print(data)
login_api = f'{url.rstrip("/")}/admin/login'
try:
r = s.post(login_api, data=data)
print(r.cookies)
print(r.text)
self.env_api = f'{url.rstrip("/")}/admin/update_env'
self.s = s
print('drpy连接成功')
except:
self.s = None
print('drpy连接失败')
def update_env(self,key,value):
if not self.s:
exit('drpy未连接,无法进行操作')
else:
data = {
'key':key,
'value':value,
}
r = self.s.post(self.env_api,data=data)
jsonData = r.json()
if jsonData.get('code') == 200:
print('修改成功')
print(jsonData['data'])
else:
print('修改失败')
if __name__ == '__main__':
drpy = Drpy('http://localhost:5705/')
drpy.update_env('test_env','测试环境变量')
\ No newline at end of file
......@@ -49,6 +49,8 @@
[dockerfile教程](https://blog.csdn.net/qq_46158060/article/details/125718218)
[获取本地设备信息](https://blog.csdn.net/cui_yonghua/article/details/125508991)
[获取本地设备信息](https://m.jb51.net/article/140716.htm)
###### 2022/12/6
- [X] 增加外部更新环境变量的方法,详情参考 /py/外部更新环境变量.py,可以自行用js等其他语言实现调用
###### 2022/12/4
- [X] 修复js1 post搜索时未传递规则请求头信息bug
- [X] alist.js更新,增加了首页推荐
......
......@@ -30,4 +30,19 @@ def get_env():
if ENV:
env.update(ENV)
# print(env)
return env
\ No newline at end of file
return env
def update_env(env_key:str,env_value:str):
lsg = storage_service()
env = lsg.getItem('ENV')
ENV = {}
try:
ENV = ujson.loads(env)
except:
env = '{}'
if env_key:
ENV[env_key] = env_value
new_env = ujson.dumps(ENV,ensure_ascii=False)
print(new_env)
lsg.setItem('ENV',new_env)
return ENV
\ No newline at end of file
......@@ -18,6 +18,7 @@ def getParmas(key=None,value=''):
:return:
"""
content_type = request.headers.get('Content-Type')
# print(content_type)
args = {}
if request.method == 'POST':
if 'application/x-www-form-urlencoded' in content_type or 'multipart/form-data' in content_type:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册