python - 狗书中的用户资料一章,User模型的注册时间member_since属性每次本地调试时发生变化是什么原因?
PHP中文网
PHP中文网 2017-04-18 09:44:05
0
1
372

先贴上相关代码,就是狗书的源码
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中文网

认证高级PHP讲师

모든 응답(1)
洪涛

렌더링 템플릿에는 다음과 같은 코드를 작성해야 합니다
원본 코드는 어떤지 모르겠지만 올려서 살펴보는 것이 가장 좋습니다

으아악

PS: 포스터와 논의하고 교환한 결과, member_since 속성이 데이터베이스에 추가된 시점은 사용자가 생성된 이후이므로 데이터가 없는 것으로 나타났습니다. 이전 렌더링에서는 모델에서 member_since가 발생했습니다. = db.Column(db.DateTime(), default=datetime.utcnow)의 datetime.utcnow 함수가 트리거되어 날짜가 새로 고쳐졌으나 데이터베이스에 입력되지 않았습니다. db.session.add에 의해 로그인할 때마다 날짜/시간이 트리거됩니다. .utcnow 함수이므로 매번 최신 날짜입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!