|
@@ -1,52 +1,61 @@
|
|
|
{% extends "base_index.html" %}
|
|
{% extends "base_index.html" %}
|
|
|
{% block content %}
|
|
{% block content %}
|
|
|
- <div class="container mt-5">
|
|
|
|
|
- <h1 class="text-center mb-4">上传CSV文件</h1>
|
|
|
|
|
- <div class="row justify-content-center">
|
|
|
|
|
- <div class="col-md-6">
|
|
|
|
|
- <form action="/simple_backtest" method="post" enctype="multipart/form-data" class="mb-3">
|
|
|
|
|
- <div class="input-group mb-3">
|
|
|
|
|
- <div class="custom-file">
|
|
|
|
|
- <input type="file" class="custom-file-input" name="file" id="fileInput"
|
|
|
|
|
- onchange="updateLabel()">
|
|
|
|
|
- <label class="custom-file-label" for="fileInput">选择文件</label>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="input-group-append">
|
|
|
|
|
- <button class="btn btn-outline-secondary" type="submit">上传</button>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+<div class="container mt-5">
|
|
|
|
|
+ <h1 class="text-center mb-4">上传CSV文件</h1>
|
|
|
|
|
+ <div class="row justify-content-center">
|
|
|
|
|
+ <div class="col-md-6">
|
|
|
|
|
+ <form action="/simple_backtest" method="post" enctype="multipart/form-data" class="mb-3">
|
|
|
|
|
+ <div class="input-group mb-3">
|
|
|
|
|
+ <div class="custom-file">
|
|
|
|
|
+ <input type="file" class="custom-file-input" name="file" id="fileInput"
|
|
|
|
|
+ onchange="updateLabel()">
|
|
|
|
|
+ <label class="custom-file-label" for="fileInput">选择文件</label>
|
|
|
</div>
|
|
</div>
|
|
|
- </form>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div class="input-group-append">
|
|
|
|
|
+ <button class="btn btn-outline-secondary" type="submit">上传</button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </form>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
|
|
|
- {% if tables %}
|
|
|
|
|
- <h2 class="text-center">{{ file_name }}分析结果</h2>
|
|
|
|
|
- <div class="table-responsive">
|
|
|
|
|
- {% for table in tables %}
|
|
|
|
|
- {{ table|safe }}
|
|
|
|
|
- {% endfor %}
|
|
|
|
|
- </div>
|
|
|
|
|
- {% endif %}
|
|
|
|
|
|
|
+ {% if tables %}
|
|
|
|
|
+ <h2 class="text-center">{{ file_name }}分析结果</h2>
|
|
|
|
|
+ <div class="table-responsive">
|
|
|
|
|
+ {% for table in tables %}
|
|
|
|
|
+ {{ table|safe }}
|
|
|
|
|
+ {% endfor %}
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ {% endif %}
|
|
|
|
|
+</div>
|
|
|
|
|
|
|
|
- <script>
|
|
|
|
|
- // 当文件选择变化时,保存文件名到本地存储
|
|
|
|
|
- function updateLabel() {
|
|
|
|
|
- var input = document.getElementById('fileInput');
|
|
|
|
|
|
|
+<script>
|
|
|
|
|
+ // 当文件选择变化时,保存文件名到本地存储
|
|
|
|
|
+ function updateLabel() {
|
|
|
|
|
+ var input = document.getElementById('fileInput');
|
|
|
|
|
+ if (input.files.length > 0) { // 确保选择了文件
|
|
|
var label = input.nextElementSibling;
|
|
var label = input.nextElementSibling;
|
|
|
var fileName = input.files[0].name;
|
|
var fileName = input.files[0].name;
|
|
|
label.innerHTML = fileName;
|
|
label.innerHTML = fileName;
|
|
|
localStorage.setItem('lastUploadedFileName', fileName); // 保存文件名到本地存储
|
|
localStorage.setItem('lastUploadedFileName', fileName); // 保存文件名到本地存储
|
|
|
|
|
+ } else {
|
|
|
|
|
+ localStorage.removeItem('lastUploadedFileName'); // 如果没有文件被选择,清除存储的文件名
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 页面加载完成后,检查是否有保存的文件名
|
|
|
|
|
+ document.addEventListener('DOMContentLoaded', function () {
|
|
|
|
|
+ var input = document.getElementById('fileInput');
|
|
|
|
|
+ var label = document.querySelector('.custom-file-label');
|
|
|
|
|
+ if (input.files.length > 0) { // 如果实际上有文件被选中
|
|
|
|
|
+ var fileName = input.files[0].name;
|
|
|
|
|
+ label.innerHTML = fileName;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ label.innerHTML = '选择文件'; // 如果没有文件,显示默认文本
|
|
|
|
|
+ localStorage.removeItem('lastUploadedFileName'); // 清除本地存储中的文件名
|
|
|
}
|
|
}
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
- // 页面加载完成后,检查是否有保存的文件名
|
|
|
|
|
- document.addEventListener('DOMContentLoaded', function () {
|
|
|
|
|
- var lastFileName = localStorage.getItem('lastUploadedFileName');
|
|
|
|
|
- if (lastFileName) {
|
|
|
|
|
- var label = document.querySelector('.custom-file-label');
|
|
|
|
|
- label.innerHTML = lastFileName;
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- </script>
|
|
|
|
|
|
|
+</script>
|
|
|
|
|
|
|
|
{% endblock %}
|
|
{% endblock %}
|