由于原始代码较长,我将提供核心函数和HTML模板的示例。
# 导入Flask和相关模块
from flask import Flask, render_template, request, redirect, url_for, flash
from flask_sqlalchemy import SQLAlchemy
from wtforms import Form, StringField, IntegerField, TextAreaField, DateField, SelectField, validators
# 初始化Flask应用
app = Flask(__name__)
app.secret_key = 'your_secret_key'
# 配置数据库连接
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost/db_name'
db = SQLAlchemy(app)
# 定义表单
class WorkerForm(Form):
name = StringField('姓名', [validators.DataRequired()])
age = IntegerField('年龄', [validators.NumberRange(min=1, max=150)])
# ... 其他字段
# 视图函数
@app.route('/')
def index():
return render_template('index.html')
@app.route('/add_worker', methods=['GET', 'POST'])
def add_worker():
form = WorkerForm(request.form)
if request.method == 'POST' and form.validate():
worker = Worker(name=form.name.data, age=form.age.data, ...)
db.session.add(worker)
db.session.commit()
flash('农民工信息已录入')
return redirect(url_for('index'))
return render_template('add_worker.html', form=form)
if __name__ == '__main__':
app.run(debug=True)
HTML模板 (add_worker.html
):
<form method="post">
{{ form.hidden_tag() }}
<p>姓名:{{ form.name }}</p>
<p>年龄:{{ form.age }}</p>
<!-- ... 其他字段的输入 -->
<p><input type="submit" value="提交"></p>
</form>
请注意,你需要创建一个Worker模型来与数据库表对应,并且需要有一个对应的数据库和相应的表结构。以上代码仅为核心函数和模板的示例,实际应用中还需要完善数据库模型定义、错误处理、路由定义等。