新增“数据编辑”
This commit is contained in:
34
app.py
34
app.py
@@ -281,10 +281,10 @@ def show_all():
|
|||||||
def edit_entry(doc_id):
|
def edit_entry(doc_id):
|
||||||
"""
|
"""
|
||||||
渲染编辑页面
|
渲染编辑页面
|
||||||
|
|
||||||
参数:
|
参数:
|
||||||
doc_id (str): 要编辑的文档ID
|
doc_id (str): 要编辑的文档ID
|
||||||
|
|
||||||
返回:
|
返回:
|
||||||
str: 渲染后的编辑页面或错误信息
|
str: 渲染后的编辑页面或错误信息
|
||||||
"""
|
"""
|
||||||
@@ -292,7 +292,7 @@ def edit_entry(doc_id):
|
|||||||
document = get_by_id(doc_id)
|
document = get_by_id(doc_id)
|
||||||
if not document:
|
if not document:
|
||||||
return "文档不存在", 404
|
return "文档不存在", 404
|
||||||
|
|
||||||
# 保持原始数据格式,不进行JSON转换
|
# 保持原始数据格式,不进行JSON转换
|
||||||
# 直接传递包含data字段的原始文档
|
# 直接传递包含data字段的原始文档
|
||||||
return render_template('edit.html', document=document)
|
return render_template('edit.html', document=document)
|
||||||
@@ -302,10 +302,10 @@ def edit_entry(doc_id):
|
|||||||
def update_entry(doc_id):
|
def update_entry(doc_id):
|
||||||
"""
|
"""
|
||||||
处理数据更新请求
|
处理数据更新请求
|
||||||
|
|
||||||
参数:
|
参数:
|
||||||
doc_id (str): 要更新的文档ID
|
doc_id (str): 要更新的文档ID
|
||||||
|
|
||||||
返回:
|
返回:
|
||||||
重定向到所有数据页面或错误信息
|
重定向到所有数据页面或错误信息
|
||||||
"""
|
"""
|
||||||
@@ -313,40 +313,40 @@ def update_entry(doc_id):
|
|||||||
original_doc = get_by_id(doc_id)
|
original_doc = get_by_id(doc_id)
|
||||||
if not original_doc:
|
if not original_doc:
|
||||||
return "文档不存在", 404
|
return "文档不存在", 404
|
||||||
|
|
||||||
# 从表单中获取所有字段数据
|
# 从表单中获取所有字段数据
|
||||||
data_parts = []
|
data_parts = []
|
||||||
i = 1
|
i = 1
|
||||||
while True:
|
while True:
|
||||||
key_name = request.form.get(f'key_{i}')
|
key_name = request.form.get(f'key_{i}')
|
||||||
field_value = request.form.get(f'field_{i}')
|
field_value = request.form.get(f'field_{i}')
|
||||||
|
|
||||||
if not key_name or not field_value:
|
if not key_name or not field_value:
|
||||||
break
|
break
|
||||||
|
|
||||||
# 处理字段值(如果是列表格式,用|##|分隔)
|
# 处理字段值(如果是列表格式,用|##|分隔)
|
||||||
if ',' in field_value:
|
if ',' in field_value:
|
||||||
# 如果是逗号分隔的值,转换为列表格式
|
# 如果是逗号分隔的值,转换为列表格式
|
||||||
items = [item.strip() for item in field_value.split(',') if item.strip()]
|
items = [item.strip() for item in field_value.split(',') if item.strip()]
|
||||||
if len(items) > 1:
|
if len(items) > 1:
|
||||||
field_value = f"[{'|##|'.join(items)}]"
|
field_value = f"[{'|##|'.join(items)}]"
|
||||||
|
|
||||||
data_parts.append(f"{key_name}:{field_value}")
|
data_parts.append(f"{key_name}:{field_value}")
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
# 验证是否有数据
|
# 验证是否有数据
|
||||||
if not data_parts:
|
if not data_parts:
|
||||||
return "没有可更新的数据", 400
|
return "没有可更新的数据", 400
|
||||||
|
|
||||||
# 构建新的数据字符串
|
# 构建新的数据字符串
|
||||||
data_value = "|###|".join(data_parts)
|
data_value = "|###|".join(data_parts)
|
||||||
|
|
||||||
# 构造更新数据
|
# 构造更新数据
|
||||||
updated_data = {
|
updated_data = {
|
||||||
'data': data_value,
|
'data': data_value,
|
||||||
'image': original_doc.get('image', '') # 保持原图片
|
'image': original_doc.get('image', '') # 保持原图片
|
||||||
}
|
}
|
||||||
|
|
||||||
# 更新文档
|
# 更新文档
|
||||||
if update_by_id(doc_id, updated_data):
|
if update_by_id(doc_id, updated_data):
|
||||||
return redirect(url_for('show_all'))
|
return redirect(url_for('show_all'))
|
||||||
@@ -377,21 +377,21 @@ def delete_entry(doc_id):
|
|||||||
def serve_image(filename):
|
def serve_image(filename):
|
||||||
"""
|
"""
|
||||||
提供image目录下图片的访问服务
|
提供image目录下图片的访问服务
|
||||||
|
|
||||||
参数:
|
参数:
|
||||||
filename (str): 图片文件名
|
filename (str): 图片文件名
|
||||||
|
|
||||||
返回:
|
返回:
|
||||||
图片文件或404错误
|
图片文件或404错误
|
||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
from flask import send_from_directory
|
from flask import send_from_directory
|
||||||
|
|
||||||
# 确保文件存在
|
# 确保文件存在
|
||||||
image_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'image')
|
image_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'image')
|
||||||
if not os.path.exists(os.path.join(image_dir, filename)):
|
if not os.path.exists(os.path.join(image_dir, filename)):
|
||||||
return "图片不存在", 404
|
return "图片不存在", 404
|
||||||
|
|
||||||
# 发送图片文件
|
# 发送图片文件
|
||||||
return send_from_directory(image_dir, filename)
|
return send_from_directory(image_dir, filename)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user