• CTFd 二次开发之注册处添加新的个人属性


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

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

    数据库配置

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

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

    有两个注意的点:

    1. 字段需要设置默认值,不然 flask 会报错
    2. 字段位置不能在中间的某个位置,只能放置在最后面(默认是最后)

    html 文件配置

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

    • 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()
    

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

    sid=request.form['sid']
    

    models 类中的配置

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

    sid = db.Column(db.String(20))
    
    • 这里 String 函数里的值为 mysql 语句中新增一个字段时指定的长度

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

  • 相关阅读:
    itextpd f生成 pdf 文件
    java word文档 转 html文件
    Activiti之 Exclusive Gateway
    activiti入门
    lucene分词器与搜索
    这款小程序 能让你和孙悟空一样 可以七十二变
    西游记中神兽谛听的能力 这款小程序也有
    想拥有一款钢铁侠Jarvis管家的软件吗?
    微信小程序开发填坑指南V1
    NaviSoft31.源码开发完成
  • 原文地址:https://www.cnblogs.com/H4lo/p/10807278.html
Copyright © 2020-2023  润新知