sqlalchemy(二)简单的连接示例

# -*- coding: utf-8 -*-
import sqlalchemy
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+mysqlconnector://plan:[email protected]/plan‘)

Base = declarative_base()  # 生成orm基类

class User(Base):  #进行映射,创建表结构,models ,三项,id name password
    __tablename__ = ‘user‘  # 表名
    id = Column(Integer, primary_key=True)
    name = Column(String(32))
    password = Column(String(64))

Base.metadata.create_all(engine)  # 创建表结构
Session_class = sessionmaker(bind=engine)  # 创建与数据库的会话session class ,注意,这里返回给session的是个class,不是实例
Session = Session_class()  # 生成session实例
# Session.close()#关闭连接 这个放最后

# 插入开始
print(‘插入开始‘)
user_obj = User(name="jack", password="jack")  # 生成你要创建的数据对象
print(user_obj.name, user_obj.id)  # 此时还没创建对象呢,不信你打印一下id发现还是None

Session.add(user_obj)  # 把要创建的数据对象添加到这个session里, 一会统一创建
print(user_obj.name, user_obj.id)  # 此时也依然还没创建

Session.commit()  # 现此才统一提交,创建数据
print(‘提交数据‘)
print(user_obj.name, user_obj.id)  # 提交过,就会放在数据库里了。
# 插入结束
print(‘插入结束‘)

# 查询开始
print(‘查询开始‘)
my_user = Session.query(User).filter_by(name="jack").first()  # 查找name=jack的
print(my_user)  # 这查出来是个对象
print(my_user.id, my_user.name, my_user.password)
# 查询结束
print(‘查询结束‘)

# 删除开始
print(‘删除开始‘)
# 先插入一个,可以删的。
user_obj = User(name="rose", password="jack")
Session.add(user_obj)
Session.commit()
# 查找到需要删的对象
del_user = Session.query(User).filter_by(name="rose").first()
print(del_user.name)
Session.delete(del_user)  # 删除命令
Session.commit()  # 提交删除
find_user = Session.query(User).all()#查询表的全部内容
for i in find_user:
    print(i.id, i.name)
# 删除结束

# 修改开始
print(‘修改开始‘)
my_user = Session.query(User).filter_by(name="jack").first()  # 找到第一条名字是jack的,生成对象。
my_user.name = "jackadam"  # 给对象变量命名
temp_id = my_user.id  # 把这个对象的ID,赋值给临时变量temp_id
Session.commit()  # 提交修改
my_user2 = Session.query(User).filter_by(id=temp_id).first()  # 根据临时变量id,重新查询一下名字是否修改。
print(my_user2.name)
# 修改结束
print(‘修改结束‘)
# 多条件查询
objs = Session.query(User).filter(User.id > 0).filter(User.id < 7).all()
# 多条件查询

# 统计
print(‘统计‘)
count_num = Session.query(User).filter(User.name.like("ja%")).count()
print(count_num)

# 统计

# 分组
print(‘分组‘)
from sqlalchemy import func

print(Session.query(func.count(User.name), User.name).group_by(User.name).all())
# 分组
Session.close()#最后不忘close

‘‘‘
orady_by
desc  升序
asc   降序
‘‘‘

注释很详细了,不写了

原文地址:https://www.cnblogs.com/jackadam/p/8591650.html

时间: 2024-10-10 17:33:26

sqlalchemy(二)简单的连接示例的相关文章

unity Dotween插件的简单介绍及示例代码

unity里面做插值动画的插件有许多,比较常见的有itween.hotween.dotween.根据大家的反馈和实际体验来说,dotween插件在灵活性.稳定性.易用性上都十分突出.这里简单介绍下它的用法,并在后文做了一些效果示例,还是不错的. 所谓"插值动画",顾名思义就是在两个值中插入其他的值来实现动画.原理非常简单,比如想让某个物体从A地到达B地,我们只知道A和B的坐标,插值动画就可以根据"缓动函数"确定A.B间的其他值,来实现物体从A到B的"运动过

Cocos2d-x 让精灵随手指移动起来二(简单实现)

void HelloWorld::ccTouchMoved(cocos2d::CCTouch *touch, cocos2d::CCEvent *event) { CCSize winSize = CCDirector::sharedDirector()->getVisibleSize(); if (m_ship) { CCPoint pos = touch->getDelta();//获取触点当前位置与较早前的位置的差距 CCPoint currentPos = m_ship->get

[MySQL5.6] 一个简单的optimizer_trace示例

[MySQL5.6] 一个简单的optimizer_trace示例 前面已经介绍了如何使用和配置MySQL5.6中optimizer_trace(点击博客),本篇我们以一个相对简单的例子来跟踪optimizer_trace的产生过程. 本文的目的不是深究查询优化器的实现,只是跟踪optimizer trace在优化器的那一部分输出,因此很多部分只是一带而过,对于需要深究的部分,暂时标注为红色,后续再扩展阅读;之前一直没看过这部分代码,理解起来还是比较困难的… 我们以一个简单的表为例过一下opti

boost asio库 同步socket连接示例

<pre name="code" class="cpp">/////////////////////////////////////// // Asio同步socket连接示例 // #include <iostream> #include <boost/thread.hpp> #include <boost/asio/io_service.hpp> #include <boost/asio.hpp> us

shell编程(十二)--- 添加用户示例

[[email protected] Learn]# cat useradd-final.sh  #!/bin/bash # DEBUG=0 ADD=0 DEL=0 help() { echo "Usage: $(basename $0) -v | --verbose | --add user1,user2,... | --del user1,user2,... | -h | --help" } while [ $# -ne 0 ] do case $1 in -h | --help 

设计模式二(简单工厂模式)

学习笔记之设计模式二,简单工厂; 假设要取得数据库连接字符串, 1.创建抽象类: public abstract class ConnectString { //输出字符串 public abstract string GetConnectString(); } 2.创建各个实体类: public class SqlConnectString : ConnectString { public override string GetConnectString() { return "SQL Con

设计模式学习(二)-简单工厂模式

---恢复内容开始--- 简单工厂设计模式 简单工厂模式定义: 简单工厂设计模式又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式.在简单工厂模式中,可以根据参数的不同返回不同类的实例.简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 简单工厂主要分为如下几个角色 抽象产品(abstract product):为所有具体产品的抽象表现,一般为抽象类 具体产品(product):为抽象产品的具体实现 生成产品工厂(facto

一个简单的CRUD示例:使用PHP+MySQL

一个简单的CRUD示例:使用PHP+MySQL 前情 总是听说CRUD,但一直不清楚是做什么的,就去查了一下,大概的意思是一组常见的数据库操作:增(create).查(read).改(update)删(delete),大概是,也有其他的翻译,这里大概了解一下就好.截止到现在,网上好像没有什么很小的示例来阐述CRUD这个概念的,然后就去查了一番资料,写了一个真的很小白的.很简单.未使用任何框架的案例. 前端准备 由于笔者对前端知识并不熟悉,这里只贴容器(传输/返回数据的容器)代码,在服务器根目录下

flask——简单博客示例教程(二)

原文:https://blog.csdn.net/u014793102/article/category/9285123 Flask从入门到做出一个博客的大型教程(二) 在开始之前,先来看下项目的整体结构. 1 flask 2 ├── app 3 │ ├── __init__.py 4 │ ├── routes.py 5 │ └── templates 6 │ ├── base.html 7 │ └── index.html 8 ├── myblog.py 3 表单 前面已经讲了一个简单的hel