用sqlalchemy对mysql数据库增删改查demo

首先要搭建mysql服务器、安装mysql python驱动、安装sqlalchemy包,

    我用的是windows环境,安装参考:https://blog.csdn.net/jishuwenming/article/details/80993840

    完整demo 如下:


--------------------- 
作者:jishuwenming 
来源:CSDN 
原文:https://blog.csdn.net/jishuwenming/article/details/82719156 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

#!/usr/bin/python  
# -*- coding: utf-8 -*-  from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
import unittestHOSTNAME = "localhost"
PORT = "3306"
DATABASE = "test"
USERNAME = "root"
PASSWORD = "mysql123"DB_URI = "mysql+mysqldb://{username}:{password}@{host}:{port}/{db}?charset=utf8".\format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)#连接数据库
connect = create_engine(DB_URI)#生成ORM基类
Base = declarative_base()  
#生成数据库表模型
class User(Base):__tablename__ = "user_login_table"  # 表名id = Column(Integer, primary_key=True)name = Column(String(32))password = Column(String(64))#创建表结构	
def creat_table():Base.metadata.create_all(connect)  #删除表结构
def rm_table():Base.metadata.drop_all(connect)def creat_session():#创建与数据库的会话session class ,这里返回给session的是classsession_class = sessionmaker(bind=connect)  #生成session实例return session_class()    #增加数据
def orm_insert(name_value, password_value):obj = User(name = name_value, password = password_value)  #生成数据对象session.add(obj) #把要创建的数据对象添加到session里session.commit() #创建数据#查询数据,查不到情况下异常处理
def orm_password_query(name_key):try:ret = session.query(User).filter_by(name = name_key).first().passwordexcept AttributeError:print '\n********************'return 1else:return retfinally:print '\n================='#删除一条数据		
def orm_delete_by_name(name_key):session.query(User).filter(User.name == name_key).delete() session.commit() #修改密码
def orm_modify_by_name(name_key, password_modify):session.query(User).filter(User.name == name_key).update({User.password: password_modify}, synchronize_session=False)session.commit() class MysqlOperationTest(unittest.TestCase):"""Test mathfuc.py"""def test_orm_insert(self):"""Test method orm_insert(a, b)"""orm_insert("34443", "44rfdfd")password = orm_password_query("34443")self.assertEqual("44rfdfd", password)def test_orm_delete(self):orm_delete_by_name("34443")password = orm_password_query("34443")self.assertEqual(1, password)def test_orm_modify(self):orm_insert("34443", "44rfdfd")orm_modify_by_name("34443", "fdsdsds")password = orm_password_query("34443")self.assertEqual("fdsdsds", password)def test_orm_query(self):#其实增删改操作已测试了查询,此处用例完整性orm_insert("ff444", "44rfdfd")password = orm_password_query("ff444")self.assertEqual("44rfdfd", password)if __name__ == '__main__':rm_table()creat_table() session = creat_session()suite = unittest.TestSuite()suite.addTest(MysqlOperationTest("test_orm_insert"))suite.addTest(MysqlOperationTest("test_orm_delete"))suite.addTest(MysqlOperationTest("test_orm_modify"))suite.addTest(MysqlOperationTest("test_orm_query"))runner = unittest.TextTestRunner(verbosity=2)runner.run(suite)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《计算机程序设计艺术》pdf

下载地址:网盘下载 内容简介 编辑本书作者D. E. Knuth是在计算机学界十分著名的学者,在本领域享有很高权威和盛名,他的这部著作是无数计算机专业人员的学习教材和参考读物,也是许多专业研究工作者经常阅读的经典。本书已被翻译为几…

Jsoup 抓取和数据页 认识HTTP头

推荐一本书:黑客攻防技术宝典.Web实战篇 ; 顺便留下一个疑问:能否通过jsoup大量并发訪问web或者小型域名server,使其瘫痪?其有用jsoup熟悉的朋友能够用它解析url来干一件非常无耻的事(源代码保密&#xff…

杭电划分问题

在做杭电做题时遇到好几个有关划分的题目,比如2050 折线分割平面、1290的献给母校的蛋糕,都是数学问题吧,感觉挺有做数学题的感觉的,在这里总结一下。 1、n个点最多把直线分成1n份,这个很好理解 2、n条直线最多把平面分…

flask + 蓝图 用 sqlalchemy 对 mysql 进行 增删查改 的 demo

main.py import uuid # UUID: 通用唯一标识符 # from flask import Flask from flask import Flask, request, json, Response from flask_sqlalchemy import SQLAlchemyfrom app.main.views import * from app.app01.views import * from app.app02.views import * from a…

UVA - 400 Unix ls

/*收获:1. 我觉得最大的收获是,了解了该怎么进行竖向的数据输出并且,以及《入门经典》的做法,并没有先转换为二维数组再输出,而是用了些别的技巧(好像也能算是技巧,具体的看代码吧,这个我也不太…

javascript中String的fromCharCode()方法

前几天遇到一个bug,后端的模板引擎在输出形如: <div title"111 aaa">内容</div> 这样的内容时,无法输出 空格,所以只能用 来代替: <div title"111 aaa">内容</div> 然后前端使用空格来切分title值: var arr1 title.split( ); 然后…

Zend Server更新至6.2版本——虚拟主机全方位管理

Zend Server自从发布6.0以来&#xff0c;并支持云服务&#xff0c;成为很多PHP程序所选择的Web服务器。 Zend Server 6.2版本从更新内容来看&#xff0c;解决了Web服务器与虚拟主机之间的协同管理。并在细节上&#xff0c;更注重性能控制。 具体更新如下&#xff1a; 虚拟主机管…

Flask 蓝图,数据库链接

蓝图 使用场景 如果代码非常多&#xff0c;要进行归类。不同的功能放在不同的文件&#xff0c;把相关的视图函数也放进去。 蓝图也就是对flask的目录结构进行分配&#xff08;应用于小&#xff0c;中型的程序&#xff09; 当然对于大型项目也可以通过 url_prefix 加前缀的…

python基础-02

常见的数据类型 列表 在python中&#xff0c;列表的创建可以是由[]两个方括号组成的。在其他语言中&#xff0c;被称之为数组。 列表里可以存放一组值&#xff0c;并且系统默认的给列表里的每一个元素以索引值&#xff0c;方便查找和使用。 如下&#xff1a; #创建一个列表&…

Flask扩展系列(八)–用户会话管理

安装和启用 遵循标准的Flask扩展安装和启用方式&#xff0c;先通过pip来安装扩展&#xff1a; $ pip install Flask-Login 接下来创建扩展对象实例&#xff1a; 1 2 3 4 5 from flask import Flask from flask.ext.login import LoginManager app Flask(__name__) login…

onmousemove和onmouseout事件的调用,和js使用双引号、单引号的时候应该注意的问题...

使用js的时候&#xff0c;统一使用双引号&#xff0c;然后通过反斜杠进行转义 ①如果同时使用单引号、和双引号的情况下容易出现问题&#xff0c;导致标签中表示的事件不能调用&#xff0c; ②导致由于标签没有封口而出现样式布局错误 1 <!DOCTYPE html>2 <html>3 …

C++ 学习书目

C书单 第一篇 一些同学问我&#xff0c;如何学好C&#xff0c;我没有别的办法给你们&#xff0c;唯一的办法就是读书&#xff0c;读大量的书&#xff0c;就可以解决。要把C作为日常语言&#xff0c;而不是一种程序语言&#xff0c;这样就好办了。 有人又要问我&#xff0c;那么…

CentOS6.5安装配置

一、网络设置&#xff1a; 1、命令&#xff1a;vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICEeth0 HWADDR00:0C:29:34:11:33 TYPEEthernet UUID6a0e083b-7d65-4afe-9d6f-f42f97659c89 ONBOOTyes NM_CONTROLLEDyes …

js踩过的一些坑

参考我的博客&#xff1a;http://www.isedwardtang.com/2017/08/29/js-bug/转载于:https://www.cnblogs.com/EdwardTang/p/7476769.html

开发中的几款小工具

文本编辑器 ckediter,kindediter,uediter比较多。 http://q.sohu.com/asset/group/ueditor/editor_all.js 马克鳗 用于: 截图测量&#xff0c;取颜色 代码比较工具 Beyond Compare sql书写智能提示工具 SQLPrompt sql自动提示,安装SQLPrompt工具options--->qualification---…

使用PDO总结

PHP使用PDO总结1、php.ini中开启PDO扩展&#xff1a; extensionphp_pdo.dll 重启Apache&#xff01; 2、PDO 构造方法 一共需要三个字段,分别为数据库配置信息&#xff0c;用户名&#xff0c;用户密码 其中数据库配置信息写法mysql:host192.16;post3306;charsetutf-8;dbnametes…

自己写的Python数据库连接类和sql语句拼接方法

python # SQL 查询语句sql "SELECT * FROM user where username %s" % username " and password %s" % password "" 参考&#xff1a; https://www.cnblogs.com/Xjng/p/3821827.html

注册表-显示回收站

WinXP系统下恢复不小心删掉的回收站图标&#xff01; 修改注册表法 1.单击“开始”\“运行”&#xff0c;在“打开”中键入“regedit”&#xff0c;运行注册表编辑器&#xff1b; 2.依次展开注册表至&#xff1a;HKEY&#xff3f;CURRENT&#xff3f;USER\Software\Microsoft\W…

自己如何获取ADO连接字符串

自己如何获取ADO连接字符串 摘自&#xff1a;http://blog.csdn.net/zyq5945/article/details/5586423 有时候我们参考网上的ADO连接字符串写未必就能连接上数据库。今天详细介绍下这个很流行的如何获取ADO字符串的方法&#xff0c;就能很容易直观看到这个连接字符串是否真能连接…

phpstorm+xdebug配置分享

一、选择XDEBUG扩展 xdebug下载地址&#xff1a;https://xdebug.org/download.php 注意&#xff1a;带"ts"是线程安全的意思&#xff0c;"nts"的他没有标示&#xff0c;也就是说&#xff0c;如果是nts的要下载没标示的&#xff0c;下载下来的文件名其实是有…