基于Python的SQLAlchemy的操作
安装
在Python使用SQLAlchemy的首要前提是安装相应的模块,当然作为python的优势,可以到python安装目录下的scripts下,同时按住shift+加上鼠标左键,从而在菜单中打开命令行
使用:1.pip3 install pymysql 2.pip3 install sqlalchemy两个命令从而安装需要的模块
使用
在使用之前首先需要建相应的数据库,而不需要建立表。下面开始:
相关模块导入
import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Index from sqlalchemy.orm import sessionmaker, relationship from sqlalchemy import and_,or_
建立连接
engine = create_engine("mysql+pymysql://root:123456@127.0.0.1:3306/pythondatabase")
engine = create_engine("mysql+pymysql://root:123456@127.0.0.1:3306/pythondatabase?charset=utf8", echo = True)
#建立连接
#当然推荐上面第二种的方式,一是可以支持中文,二是可以在Pycharm_console中看到创建过程Base = declarative_base() #建立基类,就是数据库
创建表
class Users(Base): __tablename__ = 'user1' #创建表名 id = Column(Integer,primary_key=True,autoincrement=True) #设立自增,主键等 username = Column(String(20),index=True)#建立索引 password = Column(String(20),unique=True)#代表唯一
def __repr__(self):#可加入从而查看表的属性 return self.username#如
生成表与删掉表
def init_db(): Base.metadata.create_all(engine) def drop_db(): Base.metadata.drop_all(engine) #可直接写,也可以以两个函数的方式使用,反正都是一样
增删改查
这个需要首先建立session对象,从而进一步使用增删改查
MySession = sessionmaker(bind=engine) session = MySession()#session提供响应的增删改查
增加(一个)
ed_user = Users(id=5,username=") session.add(ed_user) session.commit()
增加(多个)
session.add_all([ Users(id=6,username='), Users(id=7,username='), ]) session.commit()#实现操作,但凡涉及修改都需要commit()
删除
session.query(Users).filter(Users.id > 2).delete() session.commit() #这个和sql语句差不多
改变
session.query(Users).filter(Users.id > 2).update({"}) session.query(Users).filter(Users.id > 2).update({Users.username: Users.username + "}, synchronize_session=False) session.query(Users).filter(Users.id > 2).update({"num": Users.num + 1}, synchronize_session="evaluate") session.commit()
查询
session.query(Users).all() #查询所有 for row in session.query(Users).order_by(Users.id): print(row) #查询按照 id排序 for row in session.query(Users).filter(and_(Users.id==5,Users.username=="liming")): print(row) for row in session.query(Users).filter(or_(Users.username=="alex1",Users.username=="liming")): print(row) #设置过滤条件 print(session.query(Users))#在没有.all的条件下是其原生方法
等待补充。。。。。
基于Python的SQLAlchemy的操作的更多相关文章
- scapy - 基于python的数据包操作库
简介 地址:https://github.com/secdev/scapy scapy是一个基于python的交互式数据包操作程序和库. 它能够伪造或者解码多种协议的数据包,通过使用pcap文件对他们 ...
- python扫描器-sqlalchemy入库操作
学习 [Python]Flask系列-数据库笔记 实践 #!/usr/bin/env python # -*- coding: utf-8 -*- from sqlalchemy import cre ...
- Python_基于Python同Linux进行交互式操作实现通过堡垒机访问目标机
基于Python同Linux进行交互式操作实现通过堡垒机访问目标机 by:授客 QQ:1033553122 欢迎加入全国软件测试交流群:7156436 实现功能 1 测试环境 1 代码实践 2 注 ...
- 基于Python项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)
目录 1 准备工作 2 具体实施 1 准备工作 什么是Redis? Redis:一个高性能的key-value数据库.支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使 ...
- 基于Python操作redis介绍
(注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 毕业前的最后一个学期(2016.03),龙哥结婚了.可是总有些人喜欢嘲笑别人,调侃我.当时我就理直气壮的告诉他们,等龙哥孩子 ...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉 ...
- SQLAlchemy表操作和增删改查
一.SQLAlchemy介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数 ...
- python之sqlalchemy使用
一.介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并 ...
- Python Flask SQLALchemy基础知识
一.介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并 ...
随机推荐
- SpringMVC_HelloWorld_02
一.新建项目 同SpringMVC_HelloWorld_01 二.配置文件 1.配置web.xml <?xml version="1.0" encoding="U ...
- 基于url拦截
- 【前端】三个bug
目录 一.Array对象的indexOf() 二.使用jquery,clone()下拉框问题 三.jquery获取获取html5的data-*属性 一.Array对象的indexOf() 1.inde ...
- 读取本地图片 BitmapImage
BitmapImage defImage = new BitmapImage(); defImage.BeginInit(); defImage.UriSource = new Uri(@" ...
- js事件监听
/* 事件监听器 addEventListener() removeEventListener() 传统事件绑定: 1.重复添加会,后添加的后覆盖前面的. */ 示例代码中的html结构: <b ...
- Crack相关
Microsoft Office 2007专业增强版密钥:KXFDR-7PTMK-YKYHD-C8FWV-BBPVWM7YXX-XJ8YH-WY349-4HPR9-4JBYJCTKXX-M97FT-8 ...
- python 全栈开发,Day90(Vue组件,前端开发工具包)
昨日内容回顾 1. Vue使用 1. 生成Vue实例和DOM中元素绑定 2. app.$el --> 取出该vue实例绑定的DOM标签 3. app.$data --> 取出该vue实例绑 ...
- python 全栈开发,Day84(django请求生命周期,FBV和CBV,ORM拾遗,Git)
一.django 请求生命周期 流程图: 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post, ...
- Thread + 匿名内部类
package chapter01; public class MyThread01 extends Thread{ @Override public void run() { //让当前线程执行的代 ...
- 取消a标签或者onclick在移动端点击时的背景颜色
一.取消a标签在移动端点击时的蓝色 -webkit-tap-highlight-color: rgba(, , , ); -webkit-user-select: none; -moz-user-fo ...