sqlalchemy 更新column,如果存在则更新,如果不存在,则添加新记录

sqlalchemy 更新column,如果存在则更新,如果不存在,则添加新记录

class Friendship(Base):
    __tablename__ = 'friendship'

    id = Column(Integer,primary_key=True)
    me = Column(Integer,ForeignKey('users.id'))
    friend = Column(Integer,ForeignKey('users.id'))
    def __init__(self,me,friend):
            self.me = me
            self.friend = friend

    def check_existing(self):
        existing = session.query(Friendship).filter_by(me=self.me,friend=self.friend).first()
        if not existing:
            friendship = Friendship(self.me,self.friend)
        else:
            friendship = existing
        session.close()
        return friendship

if __name__ == '__main__':
    friendship = Friendship(self.from_user_id,self.friend_id)
    friendship = friendship.check_existing()
    session.add(friendship)
    session.commit()
    session.close()

原文地址:https://www.cnblogs.com/We612/p/12122300.html

时间: 2024-10-10 08:16:55

sqlalchemy 更新column,如果存在则更新,如果不存在,则添加新记录的相关文章

【更新日志】售后CP更新日志

记录一下: [售后CP更新日志] ============================================ 更新时间:[2015-02-28 11:51] 更新内容: 1.版本升级,框架升级,框架升级版本3.1.2.3 2.功能升级,工作流断开后可以自动重连. ============================================ 更新时间:[2014-10-10 14:03] 更新内容: 1.功能升级,研发工单在填写工作日志时同步更新Order_Task关联表

云更新:让手游更新再也不用停机维护

何谓云更新   云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源.云是网络.互联网的一种比喻说法.过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象. 云更新是将CP提供的apk原包上传到云服务器上,经过云服务器处理后,将全新的apk包投放到渠道上,同时通过云服务器的高效.快速传输.智能的处理方式,将apk的更新包.更新资源实现智能云更新:减少用户流失,节省CDN开支,避免出现游戏版

更新插件时提示“正在更新缓存”“正在等待jockey-backend退出”

Ubuntu 11 更新语言插件, 更新时 提示正在更新缓存”“正在等待jockey-backend退出”,然后就不动了. 解决方案: 在终端中键入ps -e | grep jockey 系统会显示一组执行程序号码(?) 在终端中输入sudo kill 号码 更新插件时提示"正在更新缓存""正在等待jockey-backend退出"

vue添加新属性不更新原因

一: 在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去: 当我们去看vue文档的时候,会发现有这么一句话:如果在实例创建之后添加新的属性到实例上,它不会触发视图更新.如下代码: <!DOCTYPE html><html><head><meta charset="utf-8"><title>vue $set</title><script

安装程序无法验证是否已安装所需Microsoft更新KB2919355,如果存在此更新,请继续安装。

VMware 中Windows2012 R2安装VMwareTools 安装Tools时提示"安装程序无法验证是否已安装所需Microsoft更新KB2919355,如果存在此更新,请继续安装.", 如下图: 这是因为Windows2012R2缺少两个更新补丁 请按照顺序更新补丁: 1.安装KB2975061更新 下载Windows Server 2012 R2 更新程序 (KB2975061)并更新安装. 2.安装KB2919355更新 下载 Windows Server 2012

用ADO更新MYSQL报“无法为更新定位行。一些值可能已在最后一次读取后已更改”问题的解决

今天在DELPHI中用ADO通过ODBC连MYSQL更新数据时遇到这个奇怪的错误:无法为更新定位行.一些值可能已在最后一次读取后已更改. 百思不得其解,于是上网查.有的说是因为没主键,但我这个表是有的:有的说是有缺省值,我检查了一下,所有字段都是没缺省值的:有的说是先INSERT再EDIT导致的,我这就是纯EDIT.POST,没有INSERT,所以也不存在. 又找了半天,终于找到类似情况,有人说如果EDIT修改的数据与原有数据一样,那POST时就会报这个错误.我检查了一下,还真是,我EDIT其实

线段树经典操作模板(单点更新,替换;区间更新,替换;区间求和求最值)

对于线段树的讲解此篇不再赘述,下面列出线段树应用中最常用的几种操作的代码.(具体题目未贴出,仅供有一定基础者参考代码风格) 另外,注意多组输入要写scanf("%d%d",&n,&m)!=EOF,线段树的题肯定要用c语言的输入输出,要使用字符数组,不用字符串,输入字符的时候要加getchar()吞噬空行.. (1)单点增减,区间求和: #include<iostream> #include<stdio.h> #include<string&

CentOS使用yum更新系统,但不更新内核的方法!

工作中,由于某些原因,我们可能需要更新我们的rpm包,通过yum更新的方法是最简单的,但是考虑到操作系统与服务器的兼容性,对内核进行版本升级后可能导致服务器不能正常启动,没有特别需求,建议不要对内核随意升级! yum --exclude=kernel* update

ios app 实现热更新(无需发新版本实现app添加新功能)

目前能够实现热更新的方法,总结起来有以下三种 1. 使用FaceBook 的开源框架 reactive native,使用js写原生的iOS应用 ios app可以在运行时从服务器拉取最新的js文件到本地,然后执行,因为js是一门动态的 脚本语言,所以可以在运行时直接读取js文件执行,也因此能够实现ios的热更新 2. 使用lua 脚本.lua脚本如同js 一样,也能在动态时被.之前愤怒的小鸟使用 lua脚本做的一个插件 wax,可以实现使用lua写ios应用.热更新时,从服务器拉去lua脚本