ctfd连接mysql_CTFd 二次开发之注册处添加新的个人属性

菜的扣脚的我为了使在 CTFd 中注册页面中新增一个学号的功能,捣鼓了半天。最后终于弄好了,这里做下总结。个人对 flask 还是不是很熟悉。。

这里以添加一个 sid 的字段为例

数据库配置

在 mysql 数据库中添加一个列名为 sid 的字段名

alter table users add column sid varchar(20) default 0;

20190504095932360482.png

有两个注意的点:

字段需要设置默认值,不然 flask 会报错

字段位置不能在中间的某个位置,只能放置在最后面(默认是最后)

html 文件配置

在 /CTFd/CTFd/themes/core/templates/register.html 中添加 html 表单数据,这里主要是注意 name 的值,因为是 html 的 form 表单使用这个字段名来取值

20190504095932505019.png

Flask 对于 post 请求的参数获取:

sid = request.form['sid']

auth.py 文件配置

在 /CTFd/CTFd/auth.py 中的 register 函数中添加

sid = Users.query.add_columns('sid','id').filter_by(sid=request.form['sid']).first()

20190504095932633930.png

接着在下面的代码段中添加:

sid=request.form['sid']

20190504095932735497.png

models 类中的配置

接下来还需要在 /CTFd/CTFd/models/init.py 中的 Users 类中添加一个表单名:

sid = db.Column(db.String(20))

这里 String 函数里的值为 mysql 语句中新增一个字段时指定的长度

20190504095932867338.png

这里在注册时就能正常获取到相应的 POST 过来的数据了。

20190504095932966951.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值