国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn)

這篇具有很好參考價(jià)值的文章主要介紹了【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

?? 歡迎大家來(lái)到景天科技苑??

???? 養(yǎng)成好習(xí)慣,先贊后看哦~????

?? 作者簡(jiǎn)介:景天科技苑
??《頭銜》:大廠(chǎng)架構(gòu)師,華為云開(kāi)發(fā)者社區(qū)專(zhuān)家博主,阿里云開(kāi)發(fā)者社區(qū)專(zhuān)家博主,CSDN全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,掘金優(yōu)秀博主,51CTO博客專(zhuān)家等。
??《博客》:Python全棧,前后端開(kāi)發(fā),人工智能,js逆向,App逆向,網(wǎng)絡(luò)系統(tǒng)安全,數(shù)據(jù)分析,Django,fastapi,flask等框架,linux,shell腳本等實(shí)操經(jīng)驗(yàn),網(wǎng)站搭建,面試寶典等分享。

所屬的專(zhuān)欄:flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué)
景天的主頁(yè):景天科技苑

ORM

ORM 全拼Object-Relation Mapping,中文意為 對(duì)象-關(guān)系映射。主要實(shí)現(xiàn)模型對(duì)象到關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)的映射。

ORM提供了一種面向?qū)ο蟛僮鲾?shù)據(jù)庫(kù)的方式給開(kāi)發(fā)者。不需要編寫(xiě)原生SQL語(yǔ)句也能操作數(shù)據(jù)庫(kù),實(shí)現(xiàn)了業(yè)務(wù)代碼與底層數(shù)據(jù)的解耦。

優(yōu)點(diǎn):

  • 只需要面向?qū)ο缶幊? 不需要面向數(shù)據(jù)庫(kù)編寫(xiě)SQL。
    • 對(duì)數(shù)據(jù)庫(kù)的操作都轉(zhuǎn)化成對(duì)類(lèi)/對(duì)象的屬性和方法的操作. 表字段—>對(duì)象屬性, SQL關(guān)鍵字-> 操作方法
    • 不用編寫(xiě)各種數(shù)據(jù)庫(kù)的原生sql語(yǔ)句,當(dāng)然也可以編寫(xiě)原生SQL語(yǔ)句。
  • 實(shí)現(xiàn)了數(shù)據(jù)模型代碼與數(shù)據(jù)庫(kù)數(shù)據(jù)的解耦, 屏蔽了不同數(shù)據(jù)庫(kù)操作上的差異。
    • 不再需要關(guān)注當(dāng)前項(xiàng)目使用的是哪種數(shù)據(jù)庫(kù)。
    • 通過(guò)簡(jiǎn)單的配置就可以輕松更換數(shù)據(jù)庫(kù), 而不需要修改業(yè)務(wù)代碼.

缺點(diǎn):

  • 相比較直接使用SQL語(yǔ)句操作數(shù)據(jù)庫(kù),ORM需要把操作轉(zhuǎn)換成SQL語(yǔ)句,所以有性能損失.
  • 根據(jù)對(duì)象的操作轉(zhuǎn)換成SQL語(yǔ)句,根據(jù)查詢(xún)的結(jié)果轉(zhuǎn)化成模型實(shí)例對(duì)象, 在映射過(guò)程中有性能損失.
  • 不同的ORM提供的操作不一樣,增加了學(xué)習(xí)成本

flask與python原生操作數(shù)據(jù)庫(kù)流程對(duì)比
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

Flask-SQLAlchemy

flask默認(rèn)不提供數(shù)據(jù)庫(kù)操作,也并沒(méi)有提供ORM,所以一般開(kāi)發(fā)的時(shí)候我們會(huì)采用flask-SQLAlchemy模塊來(lái)實(shí)現(xiàn)ORM操作。

SQLAlchemy是一個(gè)python語(yǔ)言編寫(xiě)的高性能的關(guān)系型數(shù)據(jù)庫(kù)ORM框架,它提供了高層的 ORM 和底層的原生數(shù)據(jù)庫(kù)的操作。

我們使用sqlalchemy 不需要調(diào)用sqlalchemy 本身這個(gè)模塊,而是采用flask-sqlalchemy ,這是一個(gè)簡(jiǎn)化了 SQLAlchemy 操作的flask擴(kuò)展模塊。(主要是簡(jiǎn)化了sqlalchemy初始化代碼和分頁(yè)操作等)

安裝 flask-sqlalchemy

pip install flask-sqlalchemy

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

如果sqlalchemy連接的是 mysql /MariaDB數(shù)據(jù)庫(kù),需要安裝 mysqldb 或pymysql驅(qū)動(dòng)

pip install pymysql

原生SQLAlchemy連接配置操作

db.py,代碼:

from sqlalchemy import create_engine   # 驅(qū)動(dòng)引擎
from sqlalchemy.ext.declarative import declarative_base # 數(shù)據(jù)庫(kù)基類(lèi)
from sqlalchemy import Column, Integer, String, Boolean, Numeric, Text # 字段、整型
from sqlalchemy.orm import sessionmaker  # 連接會(huì)話(huà)

#創(chuàng)建數(shù)據(jù)庫(kù)連接引擎
engine = create_engine(
    # 連接數(shù)據(jù)庫(kù)的URL,url里面是數(shù)據(jù)庫(kù)類(lèi)型+數(shù)據(jù)庫(kù)驅(qū)動(dòng)
    url="mysql+pymysql://root:Jin*******7!@10.10.0.52:3306/students?charset=utf8mb4",  # 如果底層驅(qū)動(dòng)是pymysql
    # url="mysql://root:123@127.0.0.1:3306/students?charset=utf8mb4",    # 如果底層驅(qū)動(dòng)是MysqlDB
    echo=True, # 當(dāng)設(shè)置為T(mén)rue時(shí)會(huì)將orm語(yǔ)句轉(zhuǎn)化為sql語(yǔ)句打印,一般debug的時(shí)候可用
    pool_size=8, # 連接池的大小,默認(rèn)為5個(gè),設(shè)置為0時(shí)表示連接無(wú)限制
    pool_recycle=60*30 # 設(shè)置時(shí)間以限制數(shù)據(jù)庫(kù)多久沒(méi)連接自動(dòng)斷開(kāi),單位是秒
)

#創(chuàng)建會(huì)話(huà)連接
DbSession = sessionmaker(bind=engine)
session = DbSession()

# 創(chuàng)建數(shù)據(jù)基類(lèi)
Model = declarative_base()

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

manage.py,代碼:

import db
#聲明的數(shù)據(jù)庫(kù)類(lèi)要繼承我們創(chuàng)建的數(shù)據(jù)庫(kù)基類(lèi)
class Student(db.Model):
    #聲明表名
    __tablename__ = "flask_student"
    #設(shè)置表中的字段,字段類(lèi)型,約束等
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255))
    sex  = db.Column(db.Boolean)
    age  = db.Column(db.Integer)
    #如果表中有的字段是python中的關(guān)鍵字,則不能直接定義,需要用到別名轉(zhuǎn)換
    class_name = db.Column("class", db.String(255),)
    description = db.Column(db.Text)
    is_delete = db.Column(db.Boolean, nullable=True, default=False)



if __name__ == '__main__':
    # 如果沒(méi)有提前聲明模型中的數(shù)據(jù)表,則可以采用以下代碼生成數(shù)據(jù)表,
    # 如果數(shù)據(jù)庫(kù)中已經(jīng)聲明了有數(shù)據(jù)表,則不會(huì)繼續(xù)生成
    db.Model.metadata.create_all(db.engine)

執(zhí)行,可以看到執(zhí)行的sql語(yǔ)句
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

查看數(shù)據(jù)庫(kù),有創(chuàng)建我們指定的表
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

看下表結(jié)構(gòu)
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

針對(duì)數(shù)據(jù)庫(kù)的增刪改查操作

添加數(shù)據(jù)

# 添加一條數(shù)據(jù)
student = Student(
    name="zhangsan",
    class_name="301",
    sex=True,
    age=18,
    description="張三愛(ài)發(fā)明",
    is_delete = True
)
db.session.add(student)
db.session.commit()

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)查看
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

添加多條數(shù)據(jù)

student_list = [
    Student(name="xiaohei", class_name="305", sex=False, age=18, description="美美的..",),
    Student(name="xiaobai", class_name="304", sex=True, age=18, description="美美的..",),
    Student(name="xiaohui", class_name="303", sex=False, age=18, description="美美的..",),
]

db.session.add_all(student_list)
db.session.commit()

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

在數(shù)據(jù)庫(kù)中查看
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

查詢(xún)所有數(shù)據(jù)

data_list = db.session.query(Student).all()
print(data_list)
for data in data_list:
    print(data.name)

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

默認(rèn)我們打印出來(lái)查詢(xún)的是類(lèi)對(duì)象,我們可以在模型類(lèi)中通過(guò)__repr__方法,將類(lèi)對(duì)象轉(zhuǎn)化為我們自定義的格式化字符串

def __repr__(self):
    return f"<{self.name} {self.__class__.__name__}>"

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

根據(jù)ID查詢(xún)一條數(shù)據(jù),query里面的參數(shù)是我們創(chuàng)建的表類(lèi)名,查詢(xún)不到返回為None

ret = db.session.query(Student).get(1)
print(ret)
print(ret.name)
print(ret.class_name)

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

查詢(xún)不存在的id,返回為None
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

所以,查詢(xún)之前要做個(gè)判斷
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

按條件查詢(xún)

data_list = db.session.query(Student).filter(Student.sex==True, Student.class_name=='301').all()
print(data_list)
for data in data_list:
    print(data.sex, data.name)

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

更新一條數(shù)據(jù)

student = db.session.query(Student).get(35)
student.name = "小會(huì)"
db.session.commit()

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

查看數(shù)據(jù)庫(kù),可見(jiàn)id為3的記錄名字已被修改
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

更新多條數(shù)據(jù)

db.session.query(Student).filter(Student.class_name=="305").update({Student.age:Student.age+1})
db.session.commit()

先看下更新之前,班級(jí)為305的學(xué)生的年齡都是18歲
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

執(zhí)行之后
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

年齡被修改
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

刪除一條數(shù)據(jù)

student = db.session.query(Student).get(3)
db.session.delete(student)
db.session.commit()

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

id為3的數(shù)據(jù)被刪除
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

刪除多條數(shù)據(jù)

db.session.query(Student).filter(Student.class_name == "304").delete()
db.session.commit()

刪除之前,我們先添加些數(shù)據(jù)
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

執(zhí)行刪除
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

可見(jiàn)班級(jí)為304的數(shù)據(jù)已被刪除
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

執(zhí)行原生sql語(yǔ)句

# 原生SQL語(yǔ)句
# 讀
cursor = db.session.execute('select * from flask_student;')
#一條
data = cursor.fetchone()
print(data)

此時(shí),會(huì)報(bào)如下錯(cuò)誤
【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

出錯(cuò)原因:是因?yàn)橐驗(yàn)榘惭b的python包依賴(lài)sqlalchmy版本不一致造成的

我的代碼原來(lái)是這樣的db.session.execute(“select * from flask_student”)把他改成

db.session.execute(text(“select * from flask_student”))這樣,然后記得導(dǎo)入from sqlalchemy.sql import text。就可以了。

最新用法

# 原生SQL語(yǔ)句
from sqlalchemy.sql import text
# 讀
cursor = db.session.execute(text('select * from flask_student'))
#一條
data = cursor.fetchone()
print(data)

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

#獲取多條

data_list = cursor.fetchall()
print(data_list)

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

寫(xiě)[添加、刪除、修改]

sql ='insert into flask_student(name, class, age, sex, description,is_delete) values(:name, :class, :age, :sex, :description, :is_delete)'
cursor = db.session.execute(text(sql),
    params={
        "name": "jintian",
        "class": "307",
        "age": 19,
        "sex": 0,
        "description": ".....",
        "is_delete":False
    })
db.session.commit()
print(cursor.lastrowid)  # 獲取最后添加的主鍵ID

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)查看

【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn),flask框架零基礎(chǔ),進(jìn)階應(yīng)用實(shí)戰(zhàn)教學(xué),python,flask,數(shù)據(jù)庫(kù),SQLAlchemy,flask操作數(shù)據(jù)庫(kù)

總結(jié)

本文詳述了python中的SQLAlchemy操作mysql數(shù)據(jù)庫(kù)的詳細(xì)用法,后續(xù)在我們?cè)趂lask中操作數(shù)據(jù)庫(kù)就借助這個(gè)工具,非常實(shí)用,感興趣的朋友可以一鍵三連,flask的高階用法持續(xù)更新中!??!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-854370.html

到了這里,關(guān)于【python】flask操作數(shù)據(jù)庫(kù)工具SQLAlchemy,詳細(xì)用法和應(yīng)用實(shí)戰(zhàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python:使用Flask-SQLAlchemy對(duì)數(shù)據(jù)庫(kù)增刪改查的簡(jiǎn)單示例

    python:使用Flask-SQLAlchemy對(duì)數(shù)據(jù)庫(kù)增刪改查的簡(jiǎn)單示例

    以下將介紹Flask-SQLAlchemy對(duì)數(shù)據(jù)庫(kù)增刪改查的簡(jiǎn)單示例。 一、安裝所需的庫(kù) pip install flask flask-sqlalchemy flask-mysql 二、創(chuàng)建數(shù)據(jù)表 本示例使用mysql創(chuàng)建數(shù)據(jù)庫(kù)和表 CREATE TABLE `user` ( ? `id` int(11) NOT NULL AUTO_INCREMENT, ? `name` varchar(255) DEFAULT NULL, ? `age` int(11) DEFAULT NULL, ? PRIMARY KEY (`id

    2024年02月07日
    瀏覽(36)
  • Flask-數(shù)據(jù)庫(kù)-SQLAlchemy

    Flask-數(shù)據(jù)庫(kù)-SQLAlchemy

    SQLAlchemy是flask的擴(kuò)展,是一個(gè)功能強(qiáng)大的OR映射器,支持多種數(shù)據(jù)庫(kù)后臺(tái),可以將類(lèi)的對(duì)象映射至數(shù)據(jù)庫(kù)表。 使用這個(gè)工具,可以創(chuàng)建數(shù)據(jù)庫(kù),創(chuàng)建表,并為數(shù)據(jù)庫(kù)添加數(shù)據(jù),進(jìn)行查詢(xún)操作等。 參考:Flask SQLAlchemy - Flask 教程 | BootWiki.com ?app=Flask(__name__)? #創(chuàng)建Flask實(shí)例 ?app

    2023年04月09日
    瀏覽(23)
  • Flask數(shù)據(jù)庫(kù)之SQLAlchemy--介紹--鏈接數(shù)據(jù)庫(kù)

    Flask數(shù)據(jù)庫(kù)之SQLAlchemy--介紹--鏈接數(shù)據(jù)庫(kù)

    目錄 SQLAlchemy介紹 SQLAlchemy連接數(shù)據(jù)庫(kù)? 數(shù)據(jù)庫(kù)是一個(gè)網(wǎng)站的基礎(chǔ)?。?! 比如MySQL、MongoDB、SQLite、PostgreSQL等,這里我們以MySQL為例進(jìn)行講解。 SQLAlchemy是一個(gè)ORM框架 對(duì)象關(guān)系映射 (英語(yǔ): Object Relational Mapping ,簡(jiǎn)稱(chēng) ORM ,或 O/RM ,或 O/R mapping ),是一種程序設(shè)計(jì)技術(shù),用于實(shí)

    2024年02月07日
    瀏覽(28)
  • Flask-sqlalchemy更新數(shù)據(jù)庫(kù)

    Flask-sqlalchemy更新數(shù)據(jù)庫(kù)

    Flask開(kāi)發(fā)過(guò)程中,難免不會(huì)在開(kāi)發(fā)工程中修改數(shù)據(jù)庫(kù)信息,如添加字段,修改字段類(lèi)型等,F(xiàn)lask可以通過(guò)擴(kuò)展庫(kù)flask-migrate來(lái)更新DEBUG中的工程數(shù)據(jù)庫(kù),更新數(shù)據(jù)庫(kù)步驟如下: 1、首先需要安裝flask_migrate,pip install flask_migrate 2、因?yàn)閒lask_sqlalchemy是通過(guò)終端命令更新,所以需要f

    2023年04月08日
    瀏覽(15)
  • flask-sqlalchemy連接數(shù)據(jù)庫(kù)

    flask-sqlalchemy連接數(shù)據(jù)庫(kù)

    1、安裝flask_sqlalchemy和pymysql包 2、進(jìn)行配置 使用Flask-SQLAlchemy擴(kuò)展操作數(shù)據(jù)庫(kù),首先需要通過(guò)URL建立數(shù)據(jù)庫(kù)連接,必須保存到Flask配置對(duì)象的SQLALCHEMY_DATABASE_URI中。 其中HOSTNAME為路由地址 PORT為端口號(hào),我在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)沒(méi)有更改,所以用的默認(rèn)的3306端口號(hào) DATABASE為數(shù)據(jù)庫(kù)名字

    2024年02月06日
    瀏覽(28)
  • 簡(jiǎn)單易用,靈活強(qiáng)大:用SQLAlchemy實(shí)現(xiàn)Python操作數(shù)據(jù)庫(kù)

    什么是SQLAlchemy? SQLAlchemy是一個(gè)Python的SQL工具和ORM框架,可以通過(guò)Python代碼直接操作關(guān)系型數(shù)據(jù)庫(kù),也可以使用ORM模型進(jìn)行對(duì)象關(guān)系映射。它支持多種數(shù)據(jù)庫(kù),并提供了強(qiáng)大的SQL表達(dá)式和查詢(xún)API。 SQLAlchemy可以分為兩個(gè)部分:Core和ORM。 Core:提供了底層的SQL表達(dá)式和查詢(xún)API,

    2024年02月04日
    瀏覽(24)
  • python Flask項(xiàng)目使用SQLalchemy連接數(shù)據(jù)庫(kù)時(shí),出現(xiàn)RuntimeError:Working outside of application context.的解決過(guò)程記錄

    在使用python的Flask框架跟著教程編寫(xiě)項(xiàng)目時(shí),我跟著教程使用了三個(gè)文件來(lái)組織,分別是main.py(主程序),module.py(數(shù)據(jù)庫(kù)模型),controller.py(藍(lán)圖模塊程序,用Blueprint銜接) 在主程序中,創(chuàng)建app、SQLalchemy實(shí)例對(duì)象db并將二者綁定 在module.py中,導(dǎo)入主程序中的db和app,創(chuàng)建

    2024年02月09日
    瀏覽(22)
  • Python 進(jìn)階(三):Python使用ORM框架SQLAlchemy操作Oracle數(shù)據(jù)庫(kù)

    Python 進(jìn)階(三):Python使用ORM框架SQLAlchemy操作Oracle數(shù)據(jù)庫(kù)

    要詳細(xì)連接Oracle數(shù)據(jù)庫(kù)并使用SQLAlchemy進(jìn)行操作,按照以下步驟進(jìn)行配置和編寫(xiě)代碼: Oracle Instant Client:Oracle 提供的客戶(hù)端庫(kù),可用于在 Python 中連接和操作 Oracle 數(shù)據(jù)庫(kù) 訪(fǎng)問(wèn) Oracle 官方網(wǎng)站:前往 Oracle 官方網(wǎng)站(instant-client/winx64-64-downloads) 可能需要?jiǎng)?chuàng)建一個(gè)免費(fèi)的 Oracle

    2024年02月11日
    瀏覽(38)
  • Python SQL 數(shù)據(jù)庫(kù)操作利器:SQLAlchemy 庫(kù)詳解(看這一篇文章就夠了)

    引言: Python 是一門(mén)廣受歡迎的編程語(yǔ)言,而 SQL 則是用于管理和操作數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)查詢(xún)語(yǔ)言。SQLAlchemy 是一個(gè)功能強(qiáng)大的 Python 庫(kù),它提供了一種與多種數(shù)據(jù)庫(kù)進(jìn)行交互的靈活方式。本文將介紹 SQLAlchemy 庫(kù),并以九個(gè)重要的要點(diǎn)詳細(xì)解釋其功能和用法。 SQLAlchemy 簡(jiǎn)介 SQLAlchem

    2024年02月07日
    瀏覽(15)
  • Python(Web時(shí)代)—— Flask的數(shù)據(jù)庫(kù)操作

    SQLAlchamy? 是 Python 中一個(gè)通過(guò) ORM 操作數(shù)據(jù)庫(kù)的框架 SQLAlchemy(對(duì)象關(guān)系映射器)提供了一種方法,用于將用戶(hù)定義的Python類(lèi)與數(shù)據(jù)庫(kù)表相關(guān)聯(lián),并將這些類(lèi)(對(duì)象)的實(shí)例與其對(duì)應(yīng)表中的行相關(guān)聯(lián)。 簡(jiǎn)單理解: ? 創(chuàng)建一個(gè)類(lèi),一個(gè)類(lèi)對(duì)應(yīng)了一個(gè)數(shù)據(jù)庫(kù)中的一張表,類(lèi)的屬性

    2024年01月22日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包