|
|
|
@ -37,7 +37,7 @@ def inject_functions():
|
|
|
|
import datetime
|
|
|
|
import datetime
|
|
|
|
def now():
|
|
|
|
def now():
|
|
|
|
return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
|
|
|
return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
|
|
|
return {'now': now, 'current_user': current_user}
|
|
|
|
return {'now': now}
|
|
|
|
|
|
|
|
|
|
|
|
# 登录路由
|
|
|
|
# 登录路由
|
|
|
|
@app.route('/login', methods=['GET', 'POST'])
|
|
|
|
@app.route('/login', methods=['GET', 'POST'])
|
|
|
|
@ -140,7 +140,6 @@ def get_hot_symbols(all_symbols_data):
|
|
|
|
return hot_symbols
|
|
|
|
return hot_symbols
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/')
|
|
|
|
@app.route('/')
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def index():
|
|
|
|
def index():
|
|
|
|
"""首页 - 多品种分析面板"""
|
|
|
|
"""首页 - 多品种分析面板"""
|
|
|
|
# 获取所有品种的分析数据
|
|
|
|
# 获取所有品种的分析数据
|
|
|
|
@ -354,7 +353,6 @@ def index():
|
|
|
|
data_unavailable=False)
|
|
|
|
data_unavailable=False)
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/symbol/<symbol>')
|
|
|
|
@app.route('/symbol/<symbol>')
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def symbol_detail(symbol):
|
|
|
|
def symbol_detail(symbol):
|
|
|
|
"""品种详情页"""
|
|
|
|
"""品种详情页"""
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
@ -598,7 +596,6 @@ def symbol_detail(symbol):
|
|
|
|
return render_template('error.html', message=f"分析失败: {str(e)}")
|
|
|
|
return render_template('error.html', message=f"分析失败: {str(e)}")
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/analysis/<symbol>')
|
|
|
|
@app.route('/api/analysis/<symbol>')
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def api_analysis(symbol):
|
|
|
|
def api_analysis(symbol):
|
|
|
|
"""API: 获取品种分析数据"""
|
|
|
|
"""API: 获取品种分析数据"""
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
@ -653,7 +650,6 @@ def api_analysis(symbol):
|
|
|
|
return jsonify({"error": str(e)}), 500
|
|
|
|
return jsonify({"error": str(e)}), 500
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/card/<symbol>')
|
|
|
|
@app.route('/api/card/<symbol>')
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def api_card(symbol):
|
|
|
|
def api_card(symbol):
|
|
|
|
"""API: 获取分析卡片数据"""
|
|
|
|
"""API: 获取分析卡片数据"""
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
@ -783,7 +779,6 @@ def api_card(symbol):
|
|
|
|
return jsonify({"error": str(e)}), 500
|
|
|
|
return jsonify({"error": str(e)}), 500
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/card/<symbol>')
|
|
|
|
@app.route('/card/<symbol>')
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def card(symbol):
|
|
|
|
def card(symbol):
|
|
|
|
"""分析卡片页面"""
|
|
|
|
"""分析卡片页面"""
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
@ -859,7 +854,6 @@ def _get_kline_data_for_chart(kline_data):
|
|
|
|
return []
|
|
|
|
return []
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/selected/add/<symbol>', methods=['POST'])
|
|
|
|
@app.route('/api/selected/add/<symbol>', methods=['POST'])
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def add_selected_symbol(symbol):
|
|
|
|
def add_selected_symbol(symbol):
|
|
|
|
"""添加自选品种"""
|
|
|
|
"""添加自选品种"""
|
|
|
|
global selected_symbols
|
|
|
|
global selected_symbols
|
|
|
|
@ -868,7 +862,6 @@ def add_selected_symbol(symbol):
|
|
|
|
return jsonify({'status': 'success', 'selected_symbols': selected_symbols})
|
|
|
|
return jsonify({'status': 'success', 'selected_symbols': selected_symbols})
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/selected/remove/<symbol>', methods=['POST'])
|
|
|
|
@app.route('/api/selected/remove/<symbol>', methods=['POST'])
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def remove_selected_symbol(symbol):
|
|
|
|
def remove_selected_symbol(symbol):
|
|
|
|
"""删除自选品种"""
|
|
|
|
"""删除自选品种"""
|
|
|
|
global selected_symbols
|
|
|
|
global selected_symbols
|
|
|
|
@ -877,7 +870,6 @@ def remove_selected_symbol(symbol):
|
|
|
|
return jsonify({'status': 'success', 'selected_symbols': selected_symbols})
|
|
|
|
return jsonify({'status': 'success', 'selected_symbols': selected_symbols})
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/selected/list')
|
|
|
|
@app.route('/api/selected/list')
|
|
|
|
@login_required
|
|
|
|
|
|
|
|
def get_selected_symbols():
|
|
|
|
def get_selected_symbols():
|
|
|
|
"""获取自选品种列表"""
|
|
|
|
"""获取自选品种列表"""
|
|
|
|
return jsonify({'selected_symbols': selected_symbols})
|
|
|
|
return jsonify({'selected_symbols': selected_symbols})
|
|
|
|
|