feat: 增加配置页面;127.0.0.1:5000/config

develop
Lxy 4 months ago
parent b06e29a95c
commit 8530e94c41

@ -874,5 +874,104 @@ def get_selected_symbols():
"""获取自选品种列表"""
return jsonify({'selected_symbols': selected_symbols})
@app.route('/config', methods=['GET', 'POST'])
def config():
"""配置页面"""
if request.method == 'POST':
# 保存配置
try:
# 读取表单数据
data_adapter_type = request.form.get('data_adapter_type', 'tqsdk')
tqsdk_username = request.form.get('tqsdk_username', '')
tqsdk_password = request.form.get('tqsdk_password', '')
rqdata_username = request.form.get('rqdata_username', '')
rqdata_password = request.form.get('rqdata_password', '')
debug = request.form.get('debug', 'false') == 'true'
enable_cache = request.form.get('enable_cache', 'true') == 'true'
cache_expiry = request.form.get('cache_expiry', '3600')
default_ai_model = request.form.get('default_ai_model', 'deepseek')
ai_api_key = request.form.get('ai_api_key', '')
# 写入配置文件
config_content = f"""# 数据源配置文件
# 统一数据获取接口的配置参数
# 数据源类型配置
# 可选值: tqsdk, rqdata
DATA_ADAPTER_TYPE = "{data_adapter_type}"
# TQSDK账号配置可选
# 未配置时会使用模拟数据
TQSDK_USERNAME = "{tqsdk_username}"
TQSDK_PASSWORD = "{tqsdk_password}"
# RQData账号配置可选
# 未配置时会使用模拟数据
RQDATA_USERNAME = "{rqdata_username}"
RQDATA_PASSWORD = "{rqdata_password}"
# 调试模式配置
# 设置为True时启用详细日志
DEBUG = {debug}
# 数据源连接超时设置(秒)
CONNECTION_TIMEOUT = 30
# 数据缓存配置
# 设置为True时启用数据缓存提高重复查询性能
ENABLE_CACHE = {enable_cache}
# 缓存过期时间(秒)
CACHE_EXPIRY = {cache_expiry}
# AI模型配置
# 默认AI模型
DEFAULT_AI_MODEL = "{default_ai_model}"
# AI模型API Key
AI_API_KEY = "{ai_api_key}"
"""
with open(os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'config.py'), 'w', encoding='utf-8') as f:
f.write(config_content)
flash('配置保存成功')
return redirect(url_for('config'))
except Exception as e:
flash(f'配置保存失败: {str(e)}')
# 读取配置
try:
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import config
config_data = {
'data_adapter_type': getattr(config, 'DATA_ADAPTER_TYPE', 'tqsdk'),
'tqsdk_username': getattr(config, 'TQSDK_USERNAME', ''),
'tqsdk_password': getattr(config, 'TQSDK_PASSWORD', ''),
'rqdata_username': getattr(config, 'RQDATA_USERNAME', ''),
'rqdata_password': getattr(config, 'RQDATA_PASSWORD', ''),
'debug': getattr(config, 'DEBUG', False),
'enable_cache': getattr(config, 'ENABLE_CACHE', True),
'cache_expiry': getattr(config, 'CACHE_EXPIRY', 3600),
'default_ai_model': getattr(config, 'DEFAULT_AI_MODEL', 'deepseek'),
'ai_api_key': getattr(config, 'AI_API_KEY', '')
}
except Exception as e:
flash(f'读取配置失败: {str(e)}')
config_data = {
'data_adapter_type': 'tqsdk',
'tqsdk_username': '',
'tqsdk_password': '',
'rqdata_username': '',
'rqdata_password': '',
'debug': False,
'enable_cache': True,
'cache_expiry': 3600,
'default_ai_model': 'deepseek',
'ai_api_key': ''
}
return render_template('config.html', **config_data)
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)

Loading…
Cancel
Save