菜的扣脚的我为了使在 CTFd 中注册页面中新增一个学号的功能,捣鼓了半天。最后终于弄好了,这里做下总结。个人对 flask 还是不是很熟悉。。
这里以添加一个 sid 的字段为例
在 mysql 数据库中添加一个列名为 sid 的字段名
alter table users add column sid varchar(20) default 0;
有两个注意的点:
在 /CTFd/CTFd/themes/core/templates/register.html 中添加 html 表单数据,这里主要是注意 name 的值,因为是 html 的 form 表单使用这个字段名来取值
sid = request.form['sid']
在 /CTFd/CTFd/auth.py 中的 register 函数中添加
sid = Users.query.add_columns('sid','id').filter_by(sid=request.form['sid']).first()
接着在下面的代码段中添加:
sid=request.form['sid']
接下来还需要在 /CTFd/CTFd/models/init.py 中的 Users 类中添加一个表单名:
sid = db.Column(db.String(20))
这里在注册时就能正常获取到相应的 POST 过来的数据了。