Python sqlalchemy 타임 스탬프 및 암호 관리 구현 코드 상세 설명
2234 단어 Pythonsqlalchemy시간.도장.비밀 번호
실제 개발 중,우 리 는 일반적으로 createtime 과 updatetime 이 두 속성 은 자동 으로 설정 할 수 있 기 때문에 표를 만 들 때 model 에서 특수 처리 해 야 합 니 다.
from sqlalchemy.sql import func
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key = True)
email = db.Column(db.String(128))
password_hash = db.Column(db.String(128))
create_time = db.Column(db.DateTime, server_default = func.now())
update_time = db.Column(db.DateTime, server_default = func.now(), onupdate = func.now())
datetime 시간 스탬프 를 바 꾸 는 방법,예 를 들 어'2020-07-09 14:15:31'(데이터베이스 에서 일반 문자열 로 읽 기)은 먼저 timetuple 로 변환 해 야 합 니 다.import time
timetuple = time.strptime('2020-07-09 14:15:31', '%Y-%m-%d %H:%M:%S')
만약 당신 이 datetime 대상 을 받 았 다 면 더욱 간단 합 니 다.
now = datetime.datetime.now()
timetuple = now.timetuple()
그리고 timetuple 을 타임 스탬프 로 바 꿉 니 다.
timestamp = int(time.mktime(timetuple))
그렇다면 타임 스탬프 는 datetime 을 어떻게 바 꿔 야 할 까?방법 은 다음 과 같다.last_time = datetime.datetime.fromtimestamp(timestamp)
비밀번호 관리데이터베이스 에 암 호 를 명문 으로 저장 하지 않 고 해시 값 으로 교체 하여 model 을 수정 할 수 있 습 니 다.
from sqlalchemy.sql import func
from werkzeug.security import generate_password_hash, check_password_hash
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key = True)
email = db.Column(db.String(128))
password_hash = db.Column(db.String(128))
create_time = db.Column(db.DateTime, server_default = func.now())
update_time = db.Column(db.DateTime, server_default = func.now(), onupdate = func.now())
@property
def password(self):
raise AttributeError('password is not a readable attribute')
@password.setter
def password(self, password):
self.password_hash = generate_password_hash(password)
def verify_password(self, password):
return check_password_hash(self.password_hash, password)
password 를 쓰기 전용 으로 설정 하고 verify 사용 하기패스워드 로 비밀 번 호 를 검사 합 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.