安装

在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的操作的更多相关文章

  1. scapy - 基于python的数据包操作库

    简介 地址:https://github.com/secdev/scapy scapy是一个基于python的交互式数据包操作程序和库. 它能够伪造或者解码多种协议的数据包,通过使用pcap文件对他们 ...

  2. python扫描器-sqlalchemy入库操作

    学习 [Python]Flask系列-数据库笔记 实践 #!/usr/bin/env python # -*- coding: utf-8 -*- from sqlalchemy import cre ...

  3. Python_基于Python同Linux进行交互式操作实现通过堡垒机访问目标机

    基于Python同Linux进行交互式操作实现通过堡垒机访问目标机   by:授客 QQ:1033553122 欢迎加入全国软件测试交流群:7156436 实现功能 1 测试环境 1 代码实践 2 注 ...

  4. 基于Python项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)

    目录 1 准备工作 2 具体实施   1 准备工作 什么是Redis? Redis:一个高性能的key-value数据库.支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使 ...

  5. 基于Python操作redis介绍

    (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 毕业前的最后一个学期(2016.03),龙哥结婚了.可是总有些人喜欢嘲笑别人,调侃我.当时我就理直气壮的告诉他们,等龙哥孩子 ...

  6. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

    目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构   前言 学习Python也有一个半月时间了,学到现在感觉 ...

  7. SQLAlchemy表操作和增删改查

    一.SQLAlchemy介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数 ...

  8. python之sqlalchemy使用

    一.介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并 ...

  9. Python Flask SQLALchemy基础知识

    一.介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并 ...

随机推荐

  1. 转载:获取Nginx源码(1.3.5)《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19616.html 可以在Nginx官方网站(http://nginx.org/en/download.html)获取Nginx源码包 ...

  2. OneNET麒麟座应用开发之十:空气质量数据监测站项目总结

    大气质量数据监测站用于测试空气质量监测及数据采集,实现野外或者室内空气质量的检测. 1.项目概述 本项目是一个定制项目,要求采集大气的压力.温度.湿度.PM25.位置等数据并上传到指定的后台服务器.但 ...

  3. linux POSIX 信号量介绍

    信号量一.什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)使用.多线程可以同时运行多个线程函数完成功能,但是对于共享数据如果不加以锁定,随意改变共享数据的值会发生 ...

  4. 前端工程化之webpack中配置babel-loader(四)

    安装 安装:npm i -D babel-core babel-loader babel-plugin-transform-runtime 安装:npm i -D babel-preset-es201 ...

  5. Nginx 下Thinkphp5伪静态

    server { listen 80; server_name all.bjed.com; root "F:\www\asdata"; location / { index ind ...

  6. 目标检测-ssd

    intro: ECCV 2016 Oral arxiv: http://arxiv.org/abs/1512.02325 paper: http://www.cs.unc.edu/~wliu/pape ...

  7. python+selenium+Jenkins构建自动化测试

    环境准备 本次使用JDK:1.8.tomcat:8.5.Jenkins:2.127 安装jdk 官方下载地址 安装教程参考 安装tomcat 和jenkins tomcat官方下载地址 jenkins ...

  8. Spring 核心API

    BeanFactory: 这是一个工厂,用于生产任意Bean,采用延迟加载,第一次getBean时才会加载 ApplicationContext: 是BeanFactory的一个子接口,功能更强大(国 ...

  9. CentOS 上安装 nodejs v11.0.0

    下载 nodejs 淘宝 nodejs 镜像地址:https://npm.taobao.org/mirrors/node wget 命令下载: wget https://npm.taobao.org/ ...

  10. 【C++ Primer 第10章】 10.4.1 插入迭代器

    目录 •  iostream迭代器 •  反向迭代器 插入迭代器 插入迭代器,这些迭代器被绑定到一个容器上,可以向容器插入元素. 头文件为:#include<iterator it=t 在it指 ...