当用户注册时,我想记录他们的IP地址。如何访问当前的ip并将其设置为列默认值?
regi_ip = db.Column(db.String(24), default='???')
答案 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
。