python sqlsever 时间_Python sqlalchemy时间戳及密码管理实现代码详解
一、时间戳
实际开发中,我们一般希望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时间戳及密码管理实现代码详解相关推荐
- python time localtimeq获取准确时间_python的内置模块time和datetime的方法详解以及使用(python内的time和datetime时间格式)...
time内置模块的方法 1.time() 时间戳 time() -> floating point number 浮点数 Return the current time in seconds ...
- python process 函数_Python Process创建进程的2种方法详解
前面介绍了使用 os.fork() 函数实现多进程编程,该方法最明显的缺陷就是不适用于 Windows 系统.本节将介绍一种支持 Python 在 Windows 平台上创建新进程的方法. Pytho ...
- python内存池_python内存监控工具memory_profiler和guppy的用法详解
python内存监控工具memory_profiler和guppy的用法详解 发布时间:2020-08-21 19:44:58 来源:脚本之家 阅读:123 python2.7在内存管理上相比pyth ...
- python比例图_python在地图上画比例的实例详解
现在用python画图已经难不倒一直跟小编学习的小伙伴们了,甚至有的小伙伴画图比小编还要厉害.为此小编还偷偷下了一番功夫,画图这种事情,细节上的完善肯定能让图片更加好看.所以小编知道大家会画地图,但是 ...
- python 元组拆包_Python元组拆包和具名元组解析实例详解
前言 在Python中元组是一个相较于其他语言比较特别的一个内置序列类型.有些python入门教程把元组成为"不可变的列表",这种说法是不完备的,其并没有完整的概括元组的特点.除了 ...
- python hook 微信_python实现微信跳一跳辅助工具步骤详解
说明 1.windows上安装安卓模拟器,安卓版本5.1以上 2.模拟器里下载安装最新的微信6.6.1 3.最好使用python2.7,python3的pyhook包有bug,解决比较麻烦 步骤 1. ...
- python 函数参数_python之函数(二)——函数参数详解
今天,我们要学习的是函数中的一个重要的概念--参数. 废话不多说,直接进入正题,下面我们看一段简单代码: def add(a, b): # 1 形参 sum = a + b return sum a ...
- python tcp服务器_python实现TCP服务器端与客户端的方法详解
本文实例讲述了python实现TCP服务器端与客户端的方法.分享给大家供大家参考.具体如下: TCP服务器程序(tsTserv.py): from socket import * from time ...
- python echo函数_python如何调用php文件中的函数详解
前言 python调用php代码实现思路:php文件可通过在terminal中使用php命令行进行调用,因此可使用python开启子进程执行命令行代码.函数所需的参数可通过命令行传递. 测试环境 1. ...
最新文章
- 均值聚类散点图怎么画_GraphPad Prism 绘图教程 | 手把手教你绘制Column散点图
- Centos7将firewall替换成iptables
- Objective-C学习笔记2013[NSString]字符串[可变字符串中,加用app减用delete]
- 拼小圈营销群_深圳弘辽科技电商:拼多多“砍单免费拿”:一场关于人性的较量...
- 前端项目集成 stylelint
- [js]js设计模式-构造函数模式
- SpingMVC 注解@RequestMapping、@SuppressWarnings、@Scheduled 定时器
- 交换机配置snmp及查看snmp配置信息
- autocad不能画图_最新AutoCAD软件+插件合集+视频讲解,高效实用,限时领
- 功能不错的Snagit截图软件
- RPLIDAR最强参数详解
- 个人观点:苹果对iPad商标事件的解决办法
- 计算机六个方面的领域,计算机的应用领域分为哪六个方面
- Portable Batch System
- LeetCode-Python-274. H指数
- JAVA 身份证校验与统一社会信用代码校验
- 【Lerna 基本使用】
- 我的世界服务器商店系统指令,我的世界自动商店指令 | 手游网游页游攻略大全...
- linux编程拼图游戏,cocos2d-x制作拼图游戏
- android 语音播报(通过手说tts 实现中文语音播报)
热门文章
- java如何设置圆角边框_巧妙实现带圆角的渐变边框
- 什么情况下选择linux,在哪种情况下建议选择BSD系统而不是Linux?
- nbiot开发需要掌握什么_什么是前端工程师?前端工程师需要掌握什么技能?
- python 中国社区_python
- 快速入门人工智能的秘诀,都在这里了!
- h700通话糊 索尼wi_专业的事还是要交给专业的人,盘点索尼千元以下的好耳机...
- 联想拯救者y7000电池耗电快_游戏新选择:联想2020款拯救者Y7000/R7000爆料
- 流量回放开源代码Java_流量回放框架 jvm-sandbox-repeater 的实践
- 20220207-CTF-MISC-第11题--- base64隐写--附带脚本
- 牛客假日团队赛10 L	乘积最大 (dp,大数)