一、时间戳

实际开发中,我们一般希望create_time和update_time这两个属性能自动设置,所以在建表的时候需要在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_password来校验密码。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Python sqlalchemy时间戳及密码管理实现代码详解

本文地址: http://www.cppcns.com/jiaoben/python/329600.html

python sqlsever 时间_Python sqlalchemy时间戳及密码管理实现代码详解相关推荐

  1. python time localtimeq获取准确时间_python的内置模块time和datetime的方法详解以及使用(python内的time和datetime时间格式)...

    time内置模块的方法 1.time() 时间戳 time() -> floating point number  浮点数 Return the current time in seconds ...

  2. python process 函数_Python Process创建进程的2种方法详解

    前面介绍了使用 os.fork() 函数实现多进程编程,该方法最明显的缺陷就是不适用于 Windows 系统.本节将介绍一种支持 Python 在 Windows 平台上创建新进程的方法. Pytho ...

  3. python内存池_python内存监控工具memory_profiler和guppy的用法详解

    python内存监控工具memory_profiler和guppy的用法详解 发布时间:2020-08-21 19:44:58 来源:脚本之家 阅读:123 python2.7在内存管理上相比pyth ...

  4. python比例图_python在地图上画比例的实例详解

    现在用python画图已经难不倒一直跟小编学习的小伙伴们了,甚至有的小伙伴画图比小编还要厉害.为此小编还偷偷下了一番功夫,画图这种事情,细节上的完善肯定能让图片更加好看.所以小编知道大家会画地图,但是 ...

  5. python 元组拆包_Python元组拆包和具名元组解析实例详解

    前言 在Python中元组是一个相较于其他语言比较特别的一个内置序列类型.有些python入门教程把元组成为"不可变的列表",这种说法是不完备的,其并没有完整的概括元组的特点.除了 ...

  6. python hook 微信_python实现微信跳一跳辅助工具步骤详解

    说明 1.windows上安装安卓模拟器,安卓版本5.1以上 2.模拟器里下载安装最新的微信6.6.1 3.最好使用python2.7,python3的pyhook包有bug,解决比较麻烦 步骤 1. ...

  7. python 函数参数_python之函数(二)——函数参数详解

    今天,我们要学习的是函数中的一个重要的概念--参数. 废话不多说,直接进入正题,下面我们看一段简单代码: def add(a, b): # 1 形参 sum = a + b return sum a ...

  8. python tcp服务器_python实现TCP服务器端与客户端的方法详解

    本文实例讲述了python实现TCP服务器端与客户端的方法.分享给大家供大家参考.具体如下: TCP服务器程序(tsTserv.py): from socket import * from time ...

  9. python echo函数_python如何调用php文件中的函数详解

    前言 python调用php代码实现思路:php文件可通过在terminal中使用php命令行进行调用,因此可使用python开启子进程执行命令行代码.函数所需的参数可通过命令行传递. 测试环境 1. ...

最新文章

  1. 均值聚类散点图怎么画_GraphPad Prism 绘图教程 | 手把手教你绘制Column散点图
  2. Centos7将firewall替换成iptables
  3. Objective-C学习笔记2013[NSString]字符串[可变字符串中,加用app减用delete]
  4. 拼小圈营销群_深圳弘辽科技电商:拼多多“砍单免费拿”:一场关于人性的较量...
  5. 前端项目集成 stylelint
  6. [js]js设计模式-构造函数模式
  7. SpingMVC 注解@RequestMapping、@SuppressWarnings、@Scheduled 定时器
  8. 交换机配置snmp及查看snmp配置信息
  9. autocad不能画图_最新AutoCAD软件+插件合集+视频讲解,高效实用,限时领
  10. 功能不错的Snagit截图软件
  11. RPLIDAR最强参数详解
  12. 个人观点:苹果对iPad商标事件的解决办法
  13. 计算机六个方面的领域,计算机的应用领域分为哪六个方面
  14. Portable Batch System
  15. LeetCode-Python-274. H指数
  16. JAVA 身份证校验与统一社会信用代码校验
  17. 【Lerna 基本使用】
  18. 我的世界服务器商店系统指令,我的世界自动商店指令 | 手游网游页游攻略大全...
  19. linux编程拼图游戏,cocos2d-x制作拼图游戏
  20. android 语音播报(通过手说tts 实现中文语音播报)

热门文章

  1. java如何设置圆角边框_巧妙实现带圆角的渐变边框
  2. 什么情况下选择linux,在哪种情况下建议选择BSD系统而不是Linux?
  3. nbiot开发需要掌握什么_什么是前端工程师?前端工程师需要掌握什么技能?
  4. python 中国社区_python
  5. 快速入门人工智能的秘诀,都在这里了!
  6. h700通话糊 索尼wi_专业的事还是要交给专业的人,盘点索尼千元以下的好耳机...
  7. 联想拯救者y7000电池耗电快_游戏新选择:联想2020款拯救者Y7000/R7000爆料
  8. 流量回放开源代码Java_流量回放框架 jvm-sandbox-repeater 的实践
  9. 20220207-CTF-MISC-第11题--- base64隐写--附带脚本
  10. 牛客假日团队赛10 L 乘积最大 (dp,大数)