人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

ORM模型框架操作mysql數(shù)據(jù)庫的方法

發(fā)布日期:2022-02-09 15:37 | 文章來源:腳本之家

【什么是ORM】

ORM 全稱是(Object Relational Mapping)表示對象關(guān)系映射; 通俗理解可以理解為編程語言的虛擬數(shù)據(jù)庫;

【理解ORM】

用戶地址信息數(shù)據(jù)庫表與對象的映射

【ORM的重要特性】

1.面向?qū)ο蟮木幊趟枷耄奖銛U充

2. 少寫(幾乎不寫)sql,提升開發(fā)效率

3.支持多種類型的數(shù)據(jù)庫(常用的mysql,pg,oracle等等),方便切換

4.ORM技術(shù)已經(jīng)相當成熟,能解決絕大部分問題

【ORM模型框架的選擇】

【SQLAlchemy ORM模型】

眾所周知,ORM框架模型可選擇的有很多,那么我們這邊選擇了SQLAlchemy 模型框架

pip install SQLAlchemy 安裝sql alchemy; 也可以指定版本號pip install SQLAlchemy ==1.4.17

import sqlalcherm; sqlalchemy.__version__; 驗證是否安裝成功及版本號;

【SQL Alchemy的使用】

一.開始連接數(shù)據(jù)庫
二.聲明ORM模型基類
三.實現(xiàn)ORM模型類
四.同步數(shù)據(jù)庫表

開始連接數(shù)據(jù)庫

  • 延遲連接(Lazy Connecting)——只有在真正操作數(shù)據(jù)庫的時候,才會連接數(shù)據(jù)庫
  • 連接代碼示例
from sqlalchemy import  create_engine
create_engine("mysql://root:@127.0.0.1:3306/school?charset=utf8,echo=True,future=True")

create_engine 參數(shù)解釋

  1. url(默認第一個參數(shù))——連接到哪種類型的數(shù)據(jù)庫,如:mysql;以哪種數(shù)據(jù)庫連接器(驅(qū)動)來連接數(shù)據(jù)庫
  2. echo——是否輸出logging(日志)信息,會把日志都打印出來
  3. future使用SQLAlchemy2.0 API風格

SQLAlchemy配置

當密碼中含有特殊字符時,怎么處理?

話不多說,見下方代碼

from urllib.parse import quote_plus
如果密碼里有特殊字符時,這邊需要導入一個類來處理
password_formatted= quote.plus("mima%&&&mima")
把處理后的密碼粘貼到上方的sqlalchemy配置中,即可

聲明ORM模型基類

from sqlalchemy.orm import declarative_base
聲明這個基類
Base = declarative_base()

【實現(xiàn)ORM模型類】

如何實現(xiàn)? 我們需要寫1個類去繼承他

然后還需要設立1個屬性

from sqlalchemy import Column, Integer, String, DateTime

class Student(Base):
    """學生信息表"""
    __tablename__ = 'student'
    id = Column(Integer, name='id', primary_key=True)
    stu_no = Column(Integer, nullable=False, comment='學號')
    stu_name = Column(String(16), nullable=False, comment='姓名')
    created_at = Column(DateTime)

1.需要在同步之前保證 數(shù)據(jù)庫中有這個庫,如果沒有,則需要手動創(chuàng)建

2 創(chuàng)建表,刪除表

from  orm_connect_example import Base ,engine
# 創(chuàng)建表
Base.metadata.create_all(engine)
#刪除表
Base.metadata.drop_all(engine)

【ORM對應的模型字段類型】

【代碼示例】

from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base
from sqlalchemy import Column, Integer, String, DateTime
# 第一步,準備連接
engine = create_engine('mysql://root:@10.72.100.1:8081/test_database_1?charset=utf8',echo=True)
# 第二步,聲明ORM模型的基類
Base = declarative_base()

# 第三步,實現(xiàn)ORM模型類
class Student(Base):
    """學生信息表"""
    __tablename__ = 'student'
    id = Column(Integer, name='id', primary_key=True)
    stu_no = Column(Integer, nullable=False, comment='學號')
    stu_name = Column(String(16), nullable=False, comment='姓名')
    created_at = Column(DateTime)
#第四步 同步數(shù)據(jù)庫表
def create_table()
    """同步數(shù)據(jù)庫表"""
    # 新建表
    Base.metadata.create_all(bind=engine)
    # 刪除表
    Base.metadata.drop_all(bind=engine)

到此這篇關(guān)于ORM模型框架操作mysql數(shù)據(jù)庫的方法的文章就介紹到這了,更多相關(guān)ORM模型框架內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

美國服務器租用

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關(guān)注
微信

關(guān)注官方微信
頂部