如何将用户的IP设置为列默认值?

时间:2014-09-30 17:41:12

标签: python flask sqlalchemy

当用户注册时,我想记录他们的IP地址。如何访问当前的ip并将其设置为列默认值?

regi_ip = db.Column(db.String(24), default='???')

2 个答案:

答案 0 :(得分:1)

有可能有这样的computed default value,但不明智的是:

def remote_addr():
    return request.remote_addr

...
    regi_ip = db.Column(db.String(24), default=remote_addr)

但是,您可能希望确保remote_addr即使没有可用的请求也可以做一些合理的事情(可能try/except使用默认值)。

答案 1 :(得分:0)

您可以使用request.remote_addr来获取当前请求的远程IP。您不能将其设置为列默认值,因为模型定义发生在请求之外,无论如何设置默认值都没有意义。创建新用户时,只需说出my_new_user.regi_ip = request.remote_addr