筆記03:sqlalchemy增刪改查
sqlalchemy增刪改查
先定義好類
檔名:userdatabase .py
# -*- coding: utf-8 -*-
"""
作用:
1、連線資料庫
2、建立表
"""
from sqlalchemy import create_engine,Column,Integer,String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
host = 'localhost'
port = '3306'
username = 'root'
password = ''
database = 'dd_db'
dd = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(username,password,host,port,database)
#注意要設定charset,不然插入中文會報錯
#獲取資料庫引擎
engine = create_engine(dd)
Base = declarative_base(engine)
#定義一個User類,資料表名為:person
class User(Base):
__tablename__ = 'person'#定義表名
#表欄位按照下面的順序依次排布
id = Column(Integer,primary_key=True)
name = Column(String(64),index=True)
email = Column(String(100))
age = Column(Integer)
#建立資料表,如果已經存在則忽略
Base.metadata.create_all()
#獲取資料庫連線,提供給外部使用
conn = engine.connect()
'''
資料操作:
1、新增/更新資料
2、查詢資料
3、刪除資料
'''
#建立與資料庫的會話session,這裡返回的是一個類class,不是例項
Session = sessionmaker(bind=engine)#繫結engine
session = Session()#初始化session例項
#1、新增/更新資料
def addUser(user):
# Session = sessionmaker(bind=engine)#繫結engine
# session = Session()#初始化session例項
result = session.query(User).filter(User.name==user.name).first()
if result is not None:
#說明已經存在了,就更新它
user.id = result.id
session.merge(user)#沒有id的話,寫入不了,會丟擲異常
print('已經存在物件,更新資料')
else:
session.add(user)#如果已經存在的話,也是寫入不了,會丟擲異常
#新增資料是不需要id,也行,但是merge一定要
session.commit()#提交,儲存到資料庫中,不寫這句話,就不會儲存到資料庫的
session.close()
def delUser(name):
result = session.query(User).filter(User.name==name).first()
if result is not None:
session.delete(result)
session.commit()
session.close()
使用
# -*- coding: utf-8 -*-
from userdatabase import User
from userdatabase import addUser,delUser
#user = User(name='王老五',email = '789@qq.com',age = 25)
user = User(name = '阿玉',email = 'ayu@qq.com',age = 26)
print(user.id)
print(user.name)
addUser(user)
delUser('王老五')
user = User(name='愛心',email = 'aixin@qq.com',age = 25)
addUser(user)
學習了兩個晚上,弄懂了資料的新增與刪除。
相關文章
- SQLAlchemy - 模組檔案以及增刪改查(CURD操作)SQL
- MySQL增刪改查學習筆記(手寫)MySql筆記
- 增刪改查
- 2020-11-03登入註冊增刪改查
- SQL增刪改查SQL
- Mongoose查增改刪Go
- indexedDB 增刪改查Index
- mysql增刪改查MySql
- 列表的增刪改查
- 字典的增刪改查
- mongodb 基本增刪改查MongoDB
- MongoDB增刪改查操作MongoDB
- layui的增刪改查UI
- 單表增刪改查
- mybatis的增刪改查MyBatis
- EFCore之增刪改查
- redist的增刪改查Redis
- sql指令,增,刪,查,改SQL
- mysql基本增刪改查MySql
- Mybatis 學習筆記(二)——原生DAO實現資料增刪改查MyBatis筆記
- iOS CoreData (一) 增刪改查iOS
- Jfinal+layui增刪改查UI
- SQL 基礎增、刪、改、查SQL
- elasticsearch7.2增刪改查Elasticsearch
- [express+mongoose](增刪改查)ExpressGo
- CoreData - 簡單 增刪改查
- C# SqlSugar增刪改查C#SqlSugar
- rust sqlx 使用---增刪改查RustSQL
- PHP操作MongoDB(增刪改查)PHPMongoDB
- JavaWeb中jdbc增刪查改JavaWebJDBC
- 03-mysql資料庫怎刪改查MySql資料庫
- 基本 SQL 之增刪改查(二)SQL
- JavaScript表格增刪改查詳解JavaScript
- MySQL基礎操作(增刪改查)MySql
- Kendo UI:grid完成增刪改查(*)UI
- mysql資料增刪改查操作MySql
- 02-CoreData 的增刪改查
- Layui(4) 增刪改查 完整案例UI