在此之前,你需要自行安装sqlalchemy相关库。
1.增
创造一个Session实例,之后调用add(Emp实例)
Session_class = sessionmaker(bind=engine)
Session = Session_class()
emp_obj = Emp(id=id, name=name, age=age, salary=salary)
Session.add(emp_obj)
Session.commit()
Session.close()
2.查
依次按照id age salary 升序排序,使用query().order_by()
all_emp = Session.query(Emp).order_by(Emp.id.asc(),Emp.age.asc(),Emp.salary.asc()).all()
3.改
用filter().update({:})
Session.query(Emp).filter(Emp.id == id).update({"salary": salary})
4.删
用query().filter().delete()删除
Session.query(Emp).filter(Emp.id == id).delete()
代码如下:
import sqlalchemy
import pymysql
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
engine = create_engine("mysql+pymysql://cp328:cP+86743175@localhost/test",
encoding='utf8')
Base = declarative_base() # 生成orm基类
class Emp(Base):
__tablename__ = 'Emp' # 表名
id = Column(String(32), primary_key=True)
name = Column(String(32))
age = Column(String(64))
salary = Column(String(64))
Base.metadata.create_all(engine) # 创建表结构
class Emphelper(object):
def new_built(self):
print("=================新建员工=============================\n")
Session_class = sessionmaker(bind=engine)
Session = Session_class()
id = input("工号:")
name = input("姓名:")
age = input("年龄:")
salary = input("工资:")
emp_obj = Emp(id=id, name=name, age=age, salary=salary)
Session.add(emp_obj)
Session.commit()
Session.close()
print("保存成功")
def check(eelf):
print("==================查看================================\n")
Session_class = sessionmaker(bind=engine)
Session = Session_class()
all_emp = Session.query(Emp).order_by(Emp.id.asc(),Emp.age.asc(),Emp.salary.asc()).all()
print("工号(id) 名字(name) 年龄(age) 工资(salary)\n")
for emp in all_emp:
print(emp.id," ",emp.name," ", emp.age, " ", emp.salary,"\n")
Session.close()
def revise(self):
print("==================修改================================\n")
Session_class = sessionmaker(bind=engine)
Session = Session_class()
id = input("输入要修改的工号:")
if Session.query(Emp).filter_by(id = id).first() == None:
print("查无此人")
else:
salary = input("输入修改后的工资:")
Session.query(Emp).filter(Emp.id == id).update({"salary": salary})
Session.commit()
Session.close()
def delete(self):
print("==================删除================================\n")
Session_class = sessionmaker(bind=engine)
Session = Session_class()
id = input("输入要删除元的工号:")
if Session.query(Emp).filter_by(id = id).first() == None:
print("查无此人")
else:
Session.query(Emp).filter(Emp.id == id).delete()
print("删除成功")
Session.commit()
Session.close()
work = Emphelper()
while True:
print("---------------------------------------------------------------\n")
print("1)新建员工 2)查看 3)修改 4)删除 5)退出\n")
print("===============================================================\n")
choice = input("请输入")
if choice == '1':
work.new_built()
if choice == '2':
work.check()
if choice == '3':
work.revise()
if choice == '4':
work.delete()
if choice == '5':
break
效果图
http://poj.org/problem?id=23521.没有注意读题 已经给好y的顺序排列,不用自己再sort了2.在使用qsort(a+1,num,sizeof(a[1]),cmp)要注意sizeof(a[1]) 还有cmp 要将const void*a 转换成 结构体先 再比较A.x B.x;3.一直TE;最后发现要读入x后要x++,这样子计算会...
原文地址:https://www.cnblogs.com/zhangpengshou/archive/2012/07/19/2599053.html方法一:// 对Date的扩展,将 Date 转化为指定格式的String// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占..._javascript 日期格式化
以QC服务器的目录结构为主,进行目录的搭建。 如果我们能用一台电脑,指挥多台装了QTP的电脑运行脚本,岂不爽哉。Mercury公司开发的Quanlity Center(简称QC),就可以实现这个功能。要使用QC远程调用QTP,需要进行一系列的设置才能实现。在这篇文章里,我们把部署了QTP的电脑叫做“测试机”,把远程控制测试机的电脑叫做“控制台”,方便说明。在测试机装完QTP后,还要安装一个插件:T..._自动化测试工具qtp的目录结构
MyBatisPlus条件构造器 — QueryWrapper、LambdaQueryWrapper_lambdaquery 字段不为空
基于Openlayers实现GeoJson与WKT互转_geojson转wkt
#include <iostream>#include<stdio.h>#include<algorithm>#include<vector>#include<cstring>#include<sstream>#include<strstream>#include<queue>using..._c++ sstream
构造函数类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行,构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。在这里有几点要注意的问题:构造函数在实例化对象时自动被调用,且在每个对象的生命期仅被调用一次。可以被重载。若程序员没有主动给类定义构造函数,编译器自动给一个缺省的构造函数。一旦程序员定..._quesheng构造函数
在mvn库中下载两个jar包:jstl-1.2.jar和standard-1.1.2.jar包第一步:点击下载jstl-1.2.jar, standard-1.1.2.jar第二步:打开IDEA,将两个jar包引入到WEB-INF目录下的lib文件中,第三步:在idea的设置中添加引用,如下图所示,在URI中添加http://java.sun.com/jsp/jstl/..._jstl-1.2.jar和standard-1.1.2.jar
android从4.2开始便添加了多用户功能,其具体的管理者为UserManager.多用户模式的启用系统判断当前设备是否支持多用户模式的依据是配置文件config.xml 中的config_multiuserMaximumUsers 和config_enableMultiUserUI 配置项。[html] view plain copy<!-- Maximum number of sup..._getmaxnumberofuserssupported
大神们,请看下这个错误!!!2019-01-02 15:43:55 [ rpc-server-3-3:318175 ] - [ WARN ] Exception in connection from /10.216.44.41:56770java.io.IOException: Connection reset by peer at sun.nio.ch.FileDisp..._exception in connection from spark java.io.ioexception: connection reset by
1.1、摘要 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。本文作为分类算法的第一篇,将首先介绍分类问题,对分类问题进行一个正式的定义。然后,介绍贝叶斯分类算法的基础——贝叶斯定理。最后,通过实例讨论贝叶斯分类中最简单的一种:朴素贝叶斯分类。1.2、分类问题综述 对于分类问题,其实谁都不会陌生,说我们每个人每天都在执行_native bayes
本文介绍了大数据基准测试工具HiBench的部署,并进行了测试。欢迎大家交流讨论!_hibench