日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python ORM - sqlalchemy 操作使用

發(fā)布時(shí)間:2024/4/17 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python ORM - sqlalchemy 操作使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

python操作數(shù)據(jù)庫

使用 ORM - sqlalchemy,pymsql

安裝:

pip install pymsq pip install sqlalchemy

一、?'''連接數(shù)據(jù)庫'''

?'''導(dǎo)入必須的包'''
from
sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker
# 基本設(shè)置 HOSTNAME = '127.0.0.1' # 本地 liunx POST = '3306' # mysql 默認(rèn)端口 DATABASE = 'mydb' # 數(shù)據(jù)庫名字 USERNAME = 'admin' # 用戶名 PASSWORD = 'Root110qwe' # 密碼 # 固定寫法
db_url = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,POST,DATABASE )
# 這里的 db_url 就是連接數(shù)據(jù)庫的路徑?!癿ysql+mysqldb”指定了使用 MySQL-Python 來連
engine = create_engine(db_url,echo=False) # 初始化數(shù)據(jù)庫連接, # create_engine() 會(huì)返回一個(gè)數(shù)據(jù)庫引擎,echo 參數(shù)為 True 時(shí),會(huì)顯示每條執(zhí)行的 SQL 語句,生產(chǎn)環(huán)境下可關(guān)閉。
Base = declarative_base(engine) # 創(chuàng)建對象的基類
Session = sessionmaker(engine) # 創(chuàng)建與數(shù)據(jù)庫連接的Session類
session = Session() # session可以視為數(shù)據(jù)庫連接
# sessionmaker() 會(huì)生成一個(gè)數(shù)據(jù)庫會(huì)話類。這個(gè)類的實(shí)例可以當(dāng)成一個(gè)數(shù)據(jù)庫連接,它同時(shí)還記錄了一些查詢的數(shù)據(jù),并決定什么時(shí)候執(zhí)行 SQL 語句。
if __name__ == '__main__': # 測試是否連接成功connection = engine.connect()result = connection.execute('select 1')print(result.fetchone())



二 、?'''創(chuàng)建 類—表 映射關(guān)系'''

?

?    創(chuàng)建表的同時(shí),也映射數(shù)據(jù)庫;也可以單獨(dú)創(chuàng)建表,

# -*- coding:utf-8 -*-from datetime import datetime from sqlalchemy import Column,Integer,String,DateTime from connect import Base,session # 這里connect前面加上點(diǎn)之后 不能直接執(zhí)行文件,但是可以外部調(diào)用'''創(chuàng)建表 user ''' class User(Base):__tablename__ = 'user'id = Column(Integer,primary_key=True,autoincrement=True) #主鍵 ,自增長username = Column(String(20),nullable=False) # 用戶名長度 20 、非空password = Column(String(50)) # 密碼長度 50creatime = Column(DateTime,default=datetime.now) # 創(chuàng)建時(shí)間 @classmethoddef by_name(cls,name): # 定義查詢函數(shù),返回查詢結(jié)果return session.query(cls).filter(cls.username==name).first()def __repr__(self): # 重寫repr 便于閱讀return "<User(id=%s,username%s,password=%s,createtime=%s)>" % (self.id,self.username,self.password,self.creatime)from sqlalchemy.orm import relationship from sqlalchemy import ForeignKey'''創(chuàng)建表 user_details ''' class UserDetails(Base):__tablename__='user_details'id = Column(Integer, primary_key=True, autoincrement=True)id_card = Column(Integer,nullable=True,unique=True)lost_login = Column(DateTime)login_num = Column(Integer,default=0)user_id = Column(Integer,ForeignKey('user.id'))'''User 要關(guān)聯(lián)的表的名字backref 返回 details 方法(屬性)uselist 默認(rèn)為True, 表示一對多關(guān)系(False表示一對一)cascade 自動(dòng)處理關(guān)系 相當(dāng)于mysql中的ON DELETE 類似 有 7 個(gè)可選參數(shù)在代碼層控制'''userdetail = relationship('User',backref='details',uselist=False,cascade='all')def __repr__(self): # 重寫repr 便于閱讀return '<UserDetails(id=%s,id_card=%s,last_login=%s,login_num=%s,user_id=%s)>'%(self.id,self.id_card,self.lost_login,self.login_num,self.user_id)from sqlalchemy import Table''' 創(chuàng)建表的另一種方法 這種方法沒有映射,如果需要映射 還需重新創(chuàng)建 類,重寫 repr''' user_article = Table('user_article',Base.metadata,Column('user_id',Integer,ForeignKey('user.id'),primary_key=True),Column('article_id',Integer,ForeignKey('article.id'),primary_key=True))


'''創(chuàng)建表 article ''' class Article(Base):__tablename__ = 'article'id = Column(Integer,primary_key=True,autoincrement=True)content = Column(String(50),nullable=True)create_time = Column(DateTime,default=datetime.now())article_user = relationship('User',backref='article',secondary=user_article)# 創(chuàng)建映射關(guān)系def __repr__(self): # 重寫repr 便于閱讀return 'Article(id=%s,content=%s,create_time=%s)'%(self.id,self.content,self.create_time)if __name__ == '__main__':Base.metadata.create_all() # 執(zhí)行

?

三 、?'''簡單的 增、刪、查、改 操作 '''

?

?

# -*- coding:utf-8 -*- from connect import session from user_module import Userdef add_user(): ## persson = User(username='xiaohong',password='qwe123',id=1)# session.add(persson) # 提交單條數(shù)據(jù)# 一次提交多條數(shù)據(jù) , 注意 這里 all 里面是列表 session.add_all([User(username='小紅', password='qwe123mmm'),User(username='老王', password='12345nnnnn'),User(username='小明', password='654321hhhhh'),])session.commit() # 必須提交def search_user(): # 查詢 默認(rèn)repr 便于機(jī)器閱讀,需要重寫rows = session.query(User).all()print(rows)def update_user(): #session.query(User).filter(User.id==2).update({User.password:1})session.commit()def delete_user(): # 刪除# rows = session.query(User).filter(User.id==2)[0]rows = session.query(User).all()print(rows)for i in rows: # 如果查到的數(shù)據(jù)量大,就是用循環(huán)刪除 session.delete(i)session.commit()if __name__ == '__main__':add_user()# search_user()# delete_user()# update_user()

?

?

?

?

?

?

?

推薦文章:廖雪峰的? 使用SQLAlchemy?

    ?? 腳本之家的 ??Python SQLAlchemy基本操作和常用技巧(包含大量實(shí)例,非常好)

    ?? z+j? 的 ?Python SqlAlchemy使用方法

    ? K.TakanashiSQLAlchemy的初步使用 

     SQLAlchemy入門(一)

?

轉(zhuǎn)載于:https://www.cnblogs.com/zlsgh/p/8538911.html

總結(jié)

以上是生活随笔為你收集整理的python ORM - sqlalchemy 操作使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男操女视频在线观看 | 麻豆成人免费视频 | 夜夜嗨av| 久久免费视频3 | 两个女人互添下身爱爱 | 国产第一页在线播放 | 鲁鲁狠狠狠7777一区二区 | 欧美片17c07.com | 神马午夜伦理 | 精品国产一区三区 | 中文字幕精品一区二区精 | 7色av| 日韩高清在线观看一区 | 饥渴少妇勾引水电工av | 亚洲一线在线观看 | 538精品一线| 九九碰 | www.成人.com| 99自拍| 真实新婚偷拍xxxxx | 精品久久久久久久久久久 | 激情丁香六月 | 影音先锋婷婷 | 日本久久精品视频 | 扒开腿揉捏花蒂h | 天海翼一区 | 宅男深夜视频 | 少妇精品一区二区 | 亚洲国产精品激情在线观看 | 黄色大片91 | 午夜日韩电影 | 在线观看国产成人 | 高潮流白浆在线观看 | www.黄色国产| 久久精品无码一区 | 无人在线观看的免费高清视频 | 国产真实乱人偷精品 | 姝姝窝人体www聚色窝 | 日韩色综合网 | 狠狠狠狠狠狠干 | 在线成人日韩 | 成人欧美视频在线观看 | 免费看成人片 | 天天干中文字幕 | 在线一区二区不卡 | 懂色av蜜臀av粉嫩av喷吹 | 亚洲视频免费观看 | 少妇熟女一区二区三区 | 农村妇女毛片精品久久久 | av自拍偷拍| 欧美另类性 | av网站大全免费 | 中文字幕在线免费看线人 | 免费黄网站在线观看 | 晨勃顶到尿h1v1 | 性生交大片免费看女人按摩 | 国产久操视频 | 黄片毛片| 超薄肉色丝袜一区二区 | 第一次破处视频 | 亚洲AV无码国产成人久久 | 午夜做爰xxxⅹ性高湖视频美国 | 亚洲美女一区二区三区 | 国产精品久久网 | 免费三级av | 91成人综合| 少妇激情一区二区三区视频 | 国产欧美综合一区二区三区 | 国产美女精品在线 | 欧美13p | 国产精品100| 无码人妻aⅴ一区二区三区有奶水 | 国产冒白浆| 国产乱子伦精品无码专区 | 一级黄色片看看 | 欧美性色a | 国产精品水嫩水嫩 | 深夜的私人秘书 | 亚洲a图| 国产有码在线观看 | av免费观看网址 | 欧美三级在线 | 天降女子在线 | 日日夜夜狠狠干 | 欧美熟妇精品黑人巨大一二三区 | 国产99页 | 黄色一级大片在线免费看国产一 | 在线免费一区二区 | 成人教育av在线 | 黄色av小说在线观看 | 男女插孔视频 | 欧美视频免费在线观看 | 在线亚洲一区二区 | www,jizz,com| 欧美成人免费高清视频 | 日韩 欧美 | 亚洲一区二区视频在线 | 国产一线二线三线女 | 久久久精品一区 |