欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python流行ORM框架sqlalchemy的簡單使用

 更新時間:2021年07月14日 09:29:54   作者:吾心依舊  
這篇文章主要介紹了Python流行ORM框架sqlalchemy的簡單使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

安裝

http://docs.sqlalchemy.org

1、安裝

#進入虛擬環(huán)境
#執(zhí)行
./python3 -m pip install

import sqlalchemy
print(sqlalchemy.__version__) # 1.1.15
我這里使用的版本是1.1.15

創(chuàng)建連接對象

http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#connecting

from sqlalchemy import create_engine
# 連接本地test數據庫
engine = create_engine("mysql://root:root@localhost/test?charset=utf8")

運行時會出錯,因為需要驅動庫,默認會調用MySQLdb。

ImportError: No module named 'MySQLdb'

我們前面安裝了pymysql,因此完整的要這么寫:

engine = create_engine("mysql+pymysql://root:root@localhost/test?charset=utf8")

簡單使用

SQL語句查詢

result = engine.execute("select * from news")
print(result.fetchall())
#[(1, '本機新聞標題'), (2, '今天的新聞'), (3, '新聞標題1'), (4, '新聞標題2'), (5, '元組新聞1'), (6, '元組新聞2')]

創(chuàng)建映射

既然我們用ORM,就是為了少寫甚至不寫SQL語句。

ORM是數據表和對象之間的映射。

http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#declare-a-mapping

1、創(chuàng)建一個Infos.py文件,這個文件我們來做數據表的映射

from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
from sqlalchemy import Column, Integer, String
class News(Base):
# 表名稱
__tablename__ = 'news'
# news表里id字段
id = Column(Integer, primary_key=True, autoincrement=True)
# news表里title字段
title = Column(String(length=255), nullable=False)

News類就是我們數據表news的映射(字段:id、title)。

2、使用

from sqlalchemy import create_engine
from mappers.Infos import News
from sqlalchemy.orm import sessionmaker
# 連接本地test數據庫
engine = create_engine("mysql+pymysql://root:root@localhost/test?charset=utf8")
# 創(chuàng)建會話
session = sessionmaker(engine)
mySession = session()
# 查詢結果集
result = mySession.query(News).all()
print(result[0])

我們要注意最后的查詢結果,看看結果集中的元素長什么樣?^_^

<mappers.Infos.News object at 0x1050c6e80>

查詢處理的記錄都是對象。

各種查詢

只查詢第一條記錄

# 查詢第一條
result = mySession.query(News).first()
print(result.title) #打印對象屬性
通過id字段查詢

# 查詢id為2的
result = mySession.query(News).filter_by(id=2).first()
print(result.title)
# 查詢id為2的
result = mySession.query(News).filter(News.id==2).first()
分頁查詢

# 分頁查詢 0,2
result = mySession.query(News).filter(News.id>1).limit(2).offset(0).all()
print(result)
自定義過濾條件

# 自定義過濾條件
result = mySession.query(News).filter(text("id>:id")).params(id=2).all()

根據主鍵查詢

result = mySession.query(News).get(3)
print(result.title)

新增和修改

# 新增
news = News(title="新增測試標題")
mySession.add(news)
mySession.commit()
#修改
mySession.query(News).filter(News.id==7).update({"title":"修改之后的標題"})
mySession.commit()

Python利用sqlacodegen自動生成ORM實體類示例

前面方法我們是手動創(chuàng)建了一個名叫Infos.py的文件,然后定義了一個News類,把這個類作為和我們news數據表的映射。

from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
from sqlalchemy import Column, Integer, String
class News(Base):
# 表名稱
__tablename__ = 'news'
# news表里id字段
id = Column(Integer, primary_key=True, autoincrement=True)
# news表里title字段
title = Column(String(length=255), nullable=False)

現在我們來看看sqlacodegen這個工具,自動生成像上面那樣的類文件。

1、安裝sqlacodegen

#cd 項目虛擬環(huán)境
#執(zhí)行
./python3 -m pip install sqlacodegen

2、使用sqlacodegen生成案列

#注意還是在虛擬環(huán)境目錄下執(zhí)行
./sqlacodegen --tables fund --outfile ../../mappers/Found.py mysql+pymysql://root:root@localhost/test?charset=utf8

到此這篇關于Python流行ORM框架sqlalchemy的文章就介紹到這了,更多相關Python ORM框架sqlalchemy內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python批量刪除只保留最近幾天table的代碼實例

    Python批量刪除只保留最近幾天table的代碼實例

    今天小編就為大家分享一篇關于Python批量刪除只保留最近幾天table的代碼實例,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • 使用python把json文件轉換為csv文件

    使用python把json文件轉換為csv文件

    這篇文章主要介紹了使用python把json文件轉換為csv文件,幫助大家更好的利用python處理數據,感興趣的朋友可以了解下
    2021-03-03
  • Python與C/C++的相互調用案例

    Python與C/C++的相互調用案例

    這篇文章主要介紹了Python與C/C++的相互調用案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python+PyQt5實現自動點擊神器

    Python+PyQt5實現自動點擊神器

    這篇文章主要為大家詳細介紹了如何利用Python和PyQt5實現自動點擊神器,旨在解決重復性的點擊工作,解放雙手,具有及時性和準確性,需要的可以參考下
    2024-01-01
  • 淺析Python四種數據類型

    淺析Python四種數據類型

    在這篇文章里,我們給大家分享了關于Python的四種數據類型相關知識點內容,有興趣的朋友們參考下。
    2018-09-09
  • 使用pickle存儲數據dump 和 load實例講解

    使用pickle存儲數據dump 和 load實例講解

    今天小編就為大家分享一篇使用pickle存儲數據dump 和 load實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 使用PyTorch將文件夾下的圖片分為訓練集和驗證集實例

    使用PyTorch將文件夾下的圖片分為訓練集和驗證集實例

    今天小編就為大家分享一篇使用PyTorch將文件夾下的圖片分為訓練集和驗證集實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python裝飾器使用方法全面梳理

    Python裝飾器使用方法全面梳理

    這篇文章主要介紹了Python @property裝飾器的用法,在Python中,可以通過@property裝飾器將一個方法轉換為屬性,從而實現用于計算的屬性,下面文章圍繞主題展開更多相關詳情,感興趣的小伙伴可以參考一下
    2023-01-01
  • Win10下安裝并使用tensorflow-gpu1.8.0+python3.6全過程分析(顯卡MX250+CUDA9.0+cudnn)

    Win10下安裝并使用tensorflow-gpu1.8.0+python3.6全過程分析(顯卡MX250+CUDA9.

    這篇文章主要介紹了Win10下安裝并使用tensorflow-gpu1.8.0+python3.6全過程(顯卡MX250+CUDA9.0+cudnn),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 使用Python編寫文件重復檢查器的完整代碼

    使用Python編寫文件重復檢查器的完整代碼

    在日常工作中,我們經常需要處理大量文件,但有時候會遇到文件重復的情況,為了有效管理文件并避免重復占用存儲空間,我們可以編寫一個簡單的Python程序來檢查文件夾中是否存在重復文件,本文將介紹如何使用Python和其庫來編寫一個文件重復檢查器
    2024-08-08

最新評論