要在Flask中实现主子表结构的管理系统,可以使用Flask与Jinja2模板引擎来构建前端。以下是一个简单的示例,展示如何实现主子表结构。
### 目录结构project/
│
├── app.py
├── templates/
│ ├── layout.html
│ ├── main_form.html
│ └── sub_form.html
└── static/
└── style.css
### app.py:app.py
from flask import Flask, render_template, request, redirect, url_for
app = Flask(__name__)
# 模拟数据库
main_table = []
sub_table = []
@app.route('/')
def index():
return render_template('main_form.html', main_table=main_table, sub_table=sub_table)
@app.route('/add_main', methods=['POST'])
def add_main():
main_data = request.form['main_data']
main_table.append(main_data)
return redirect(url_for('index'))
@app.route('/add_sub', methods=['POST'])
def add_sub():
sub_data = request.form['sub_data']
sub_table.append(sub_data)
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
### templates/layout.html:templates/layout.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>主子表管理系统</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
<div class="container">
{% block content %}{% endblock %}
</div>
</body>
</html>
### templates/main_form.html:templates/main_form.html
{% extends "layout.html" %}
{% block content %}
<h1>主表</h1>
<form action="{{ url_for('add_main') }}" method="post">
<input type="text" name="main_data" placeholder="输入主表数据">
<button type="submit">添加</button>
</form>
<ul>
{% for item in main_table %}
<li>{{ item }}</li>
{% endfor %}
</ul>
<h1>子表</h1>
<form action="{{ url_for('add_sub') }}" method="post">
<input type="text" name="sub_data" placeholder="输入子表数据">
<button type="submit">添加</button>
</form>
<ul>
{% for item in sub_table %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endblock %}
### static/style.css:static/style.css
.container {
width: 80%;
margin: 0 auto;
padding: 20px;
}
h1 {
font-size: 24px;
margin-bottom: 10px;
}
form {
margin-bottom: 20px;
}
input[type="text"] {
padding: 5px;
margin-right: 10px;
}
button {
padding: 5px 10px;
}
这个示例展示了如何使用Flask和Jinja2模板引擎创建一个简单的主子表结构管理系统。主表和子表的数据分别通过表单提交,并在页面上显示。你可以根据需要扩展这个示例,添加更多功能和样式。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |