最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

sqlalchemy實(shí)現(xiàn)時間列自動更新教程

 更新時間:2020年09月02日 15:55:25   作者:水痕01  
這篇文章主要介紹了sqlalchemy實(shí)現(xiàn)時間列自動更新教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

一、使用場景需求

1、在實(shí)際項(xiàng)目開發(fā)過程中,用戶可以操作的數(shù)據(jù),我們往往會新增一個字段,來保存用戶最后一次修改時間

2、一些系統(tǒng)中,我們需要存儲用戶最后一次登錄時間,來統(tǒng)計(jì)用戶的活躍度

二、 在sqlalchemy中常規(guī)的做法

1、數(shù)據(jù)模型

import datetime
from uuid import uuid4
from sqlalchemy import Column, Integer, String, DateTime, Boolean
from sqlalchemy_demo.connect import Base
class UserModule(Base):
  """
  創(chuàng)建一個用戶的數(shù)據(jù)模型
  """
  __tablename__ = 'user'

  uuid = Column(String(36), unique=True, nullable=False, default=lambda: str(uuid4()), comment='uuid')
  id = Column(Integer, primary_key=True, autoincrement=True, comment='用戶id')
  user_name = Column(String(30), nullable=False, unique=True, comment='用戶名')
  password = Column(String(64), nullable=False, comment='用戶密碼')
  createtime = Column(DateTime, default=datetime.datetime.now, comment='創(chuàng)建時間')
  updatetime = Column(DateTime, default=datetime.datetime.now, comment='修改時間')
  is_lock = Column(Boolean, default=False, nullable=False, comment='是否鎖住用戶')

2、每次更新數(shù)據(jù)的時候,需要手動插入時間字段,來確保updatetime這個時間字段才會更新

三、使用自動更新數(shù)據(jù)

基于上面手動插入時間字段,在開發(fā)過程中很不方便,我們需要的是類似django中修改數(shù)據(jù),該列會自動更新

1、導(dǎo)包

from uuid import uuid4
from sqlalchemy import Column, Integer, String, DateTime, Boolean, TIMESTAMP, func
from sqlalchemy.orm import relationship

from sqlalchemy_demo.connect import Base

2、定義數(shù)據(jù)模型

class UserModule(Base):
  """
  創(chuàng)建一個用戶的數(shù)據(jù)模型
  """
  __tablename__ = 'user'

  uuid = Column(String(36), unique=True, nullable=False, default=lambda: str(uuid4()), comment='uuid')
  id = Column(Integer, primary_key=True, autoincrement=True, comment='用戶id')
  user_name = Column(String(30), nullable=False, unique=True, comment='用戶名')
  password = Column(String(64), nullable=False, comment='用戶密碼')
  createtime = Column(DateTime, server_default=func.now(), comment='創(chuàng)建時間')
  # onupdate設(shè)置自動更改
  updatetime = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment='修改時間')
  is_lock = Column(Boolean, default=False, nullable=False, comment='是否鎖住用戶')

3、接下來的創(chuàng)建表與增刪改查都一樣的。

補(bǔ)充知識:Flask-SQLALchemy對表中數(shù)據(jù)按時間進(jìn)行統(tǒng)計(jì)

例如表的結(jié)構(gòu)如下:

class Status(db.Model):
  id = db.Column(db.Integer, primary_key=True)
  submit_time = db.Column(db.DateTime, default=datetime.now())

其中,Status表接受用戶的提交,現(xiàn)在想對用戶的提交情況按時間進(jìn)行統(tǒng)計(jì)。例如過去24小時,每小時的提交次數(shù);過去12個月,每個月的提交次數(shù)。

python代碼實(shí)現(xiàn)查詢?nèi)缦拢?/p>

from datetime import datetime, timedelta
 
NOW = datetime.utcnow()
last_24h_submits_count = []
for h in xrange(1,25):
  count = session.query(Status).filter(Status.submit_time.between(NOW - timedelta(seconds=h*3600-1), NOW - timedelta(hours=h-1))).count()
  last_24h_submits_count.append(count)

以上這篇sqlalchemy實(shí)現(xiàn)時間列自動更新教程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python可視化學(xué)習(xí)之seaborn調(diào)色盤

    Python可視化學(xué)習(xí)之seaborn調(diào)色盤

    seaborn是在matplotlib基礎(chǔ)上封裝的,所以matplotlib的調(diào)色盤seaborn都可以使用。本文系統(tǒng)介紹seaborn調(diào)色盤,相較于matplotlib,有諸多不同,需要的可以參考一下
    2022-02-02
  • pandas庫中to_datetime()方法的使用解析

    pandas庫中to_datetime()方法的使用解析

    這篇文章主要介紹了pandas庫中to_datetime()方法的使用解析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 關(guān)于Python中object類特殊方法的解釋

    關(guān)于Python中object類特殊方法的解釋

    在學(xué)習(xí)Python的過程中我們會發(fā)現(xiàn)有一個類?Object類?,它是所有類的父類,Object類規(guī)定了python用于類的內(nèi)置函數(shù),今天我們就來看看幾個常用的特殊方法吧
    2023-03-03
  • pytest?用例執(zhí)行失敗后其他不再執(zhí)行

    pytest?用例執(zhí)行失敗后其他不再執(zhí)行

    本文主要介紹了pytest?用例執(zhí)行失敗后其他不再執(zhí)行,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python實(shí)現(xiàn)畫圖軟件功能方法詳解

    Python實(shí)現(xiàn)畫圖軟件功能方法詳解

    這篇文章主要介紹了 Python實(shí)現(xiàn)畫圖軟件功能方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 使用實(shí)現(xiàn)XlsxWriter創(chuàng)建Excel文件并編輯

    使用實(shí)現(xiàn)XlsxWriter創(chuàng)建Excel文件并編輯

    今天小編就為大家分享一篇使用實(shí)現(xiàn)XlsxWriter創(chuàng)建Excel文件并編輯,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python?調(diào)用函數(shù)時檢查參數(shù)的類型是否合規(guī)的實(shí)現(xiàn)代碼

    Python?調(diào)用函數(shù)時檢查參數(shù)的類型是否合規(guī)的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python?調(diào)用函數(shù)時檢查參數(shù)的類型是否合規(guī)的實(shí)現(xiàn)代碼,本文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • tensorflow實(shí)現(xiàn)簡單邏輯回歸

    tensorflow實(shí)現(xiàn)簡單邏輯回歸

    邏輯回歸是一種分類器模型,這篇文章主要介紹了tensorflow實(shí)現(xiàn)簡單邏輯回歸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python分布式庫celery處理大規(guī)模的任務(wù)并行化

    python分布式庫celery處理大規(guī)模的任務(wù)并行化

    Python中的分布式任務(wù)隊(duì)列時,Celery是一個備受推崇的工具,它是一個功能強(qiáng)大的分布式系統(tǒng),可用于處理大規(guī)模的任務(wù)并行化,本文將介紹Celery的基本概念、用法和示例代碼,幫助讀者更好地了解和使用這個庫
    2024-01-01
  • Python自動掃描出微信不是好友名單的方法

    Python自動掃描出微信不是好友名單的方法

    很多人想要清楚已經(jīng)被刪除的好友名單。面對龐大的好友數(shù)量想要清除談何容易,本文主要介紹了Python自動掃描出微信不是好友名單的方法,感興趣的可以了解一下
    2021-05-05

最新評論

石渠县| 寻乌县| 阿拉善盟| 天镇县| 栾川县| 韶山市| 南木林县| 彩票| 龙海市| 寿光市| 长汀县| 闽清县| 海门市| 台南市| 云林县| 申扎县| 和田县| 栾城县| 阿拉尔市| 沐川县| 社旗县| 铜山县| 体育| 容城县| 神木县| 屯昌县| 益阳市| 青冈县| 天气| 神农架林区| 华阴市| 吐鲁番市| 修武县| 达日县| 中牟县| 皋兰县| 连城县| 石阡县| 建平县| 邹城市| 观塘区|