如何在Python中安裝sqlalchemy框架?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
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數(shù)據(jù)庫 engine = create_engine("mysql://root:root@localhost/test?charset=utf8")
運行時會出錯,因為需要驅(qū)動庫,默認會調(diào)用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是數(shù)據(jù)表和對象之間的映射。
http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#declare-a-mapping
1、創(chuàng)建一個Infos.py文件,這個文件我們來做數(shù)據(jù)表的映射
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類就是我們數(shù)據(jù)表news的映射(字段:id、title)。
2、使用
from sqlalchemy import create_engine from mappers.Infos import News from sqlalchemy.orm import sessionmaker # 連接本地test數(shù)據(jù)庫 engine = create_engine("mysql+pymysql://root:root@localhost/test?charset=utf8") # 創(chuàng)建會話 session = sessionmaker(engine) mySession = session() # 查詢結(jié)果集 result = mySession.query(News).all() print(result[0])
我們要注意最后的查詢結(jié)果,看看結(jié)果集中的元素長什么樣?^_^
<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()
根據(jù)主鍵查詢
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()
關(guān)于如何在Python中安裝sqlalchemy框架問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道了解更多相關(guān)知識。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章標題:如何在Python中安裝sqlalchemy框架-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.2m8n56k.cn/article33/dsihps.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設計公司、關(guān)鍵詞優(yōu)化、企業(yè)建站、企業(yè)網(wǎng)站制作、網(wǎng)站改版、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)