ホームページ  >  に質問  >  本文

python - 狗书中的用户资料一章,User模型的注册时间member_since属性每次本地调试时发生变化是什么原因?

先贴上相关代码,就是狗书的源码
app/models.py

class User(UserMixin, db.Model):
    member_since = db.Column(db.DateTime(), default=datetime.utcnow)
    last_seen = db.Column(db.DateTime(), default=datetime.utcnow)
    
    def ping(self):
        self.last_seen = datetime.utcnow()
        db.session.add(self)

app/auth/views.py

@auth.before_app_request
def before_request():
    if current_user.is_authenticated:
        current_user.ping()

代码是在本地测试的,我是9月份的时候添加的3个用户,但发现每次run,用户资料页的member_since值都会刷新成当天的日期,last_seen值倒是没问题。请问是哪里出问题了?

PHP中文网PHP中文网2741日前390

全員に返信(1)返信します

  • PHP中文网

    PHP中文网2017-04-18 09:46:05

    次のコードはレンダリング テンプレートに記述する必要があります
    元のポスターのコードがどのようなものであるかわかりません。投稿して確認するのが最善です

    リーリー

    追記: 元の投稿者との議論と交換の結果、属性 member_since はユーザーの作成後にデータベースに追加されたため、前回のレンダリング中にデータが存在しなかったことがわかりました。 、 member_since がモデルに追加されました。 = db.Column(db.DateTime()、default=datetime.utcnow) の datetime.utcnow 関数がトリガーされ、日付が更新されましたが、db によってデータベースに入力されませんでした。 session.add を使用すると、ログインするたびに datetime がトリガーされます。 .utcnow 関数なので、毎回最新の日付になります。

    返事
    0
  • キャンセル返事