濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > ORM模型框架操作mysql數(shù)據(jù)庫(kù)的方法

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

熱門(mén)標(biāo)簽:大眾點(diǎn)評(píng)星級(jí)酒店地圖標(biāo)注 智能外呼系統(tǒng)復(fù)位 臨清電話機(jī)器人 高清地圖標(biāo)注道路 拉卡拉外呼系統(tǒng) 400電話可以辦理嗎 云南電商智能外呼系統(tǒng)價(jià)格 話務(wù)外呼系統(tǒng)怎么樣 外東北地圖標(biāo)注

【什么是ORM】

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

【理解ORM】

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

【ORM的重要特性】

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

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

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

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

【ORM模型框架的選擇】

【SQLAlchemy ORM模型】

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

pip install SQLAlchemy 安裝sql alchemy; 也可以指定版本號(hào)pip install SQLAlchemy ==1.4.17

import sqlalcherm; sqlalchemy.__version__; 驗(yàn)證是否安裝成功及版本號(hào);

【SQL Alchemy的使用】

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

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

  • 延遲連接(Lazy Connecting)——只有在真正操作數(shù)據(jù)庫(kù)的時(shí)候,才會(huì)連接數(shù)據(jù)庫(kù)
  • 連接代碼示例
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(默認(rèn)第一個(gè)參數(shù))——連接到哪種類(lèi)型的數(shù)據(jù)庫(kù),如:mysql;以哪種數(shù)據(jù)庫(kù)連接器(驅(qū)動(dòng))來(lái)連接數(shù)據(jù)庫(kù)
  2. echo——是否輸出logging(日志)信息,會(huì)把日志都打印出來(lái)
  3. future使用SQLAlchemy2.0 API風(fēng)格

SQLAlchemy配置

當(dāng)密碼中含有特殊字符時(shí),怎么處理?

話不多說(shuō),見(jiàn)下方代碼

from urllib.parse import quote_plus
如果密碼里有特殊字符時(shí),這邊需要導(dǎo)入一個(gè)類(lèi)來(lái)處理

password_formatted= quote.plus("mima%mima")
把處理后的密碼粘貼到上方的sqlalchemy配置中,即可

聲明ORM模型基類(lèi)

from sqlalchemy.orm import declarative_base

聲明這個(gè)基類(lèi)
Base = declarative_base()

【實(shí)現(xiàn)ORM模型類(lèi)】

如何實(shí)現(xiàn)? 我們需要寫(xiě)1個(gè)類(lèi)去繼承他

然后還需要設(shè)立1個(gè)屬性

from sqlalchemy import Column, Integer, String, DateTime


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

1.需要在同步之前保證 數(shù)據(jù)庫(kù)中有這個(gè)庫(kù),如果沒(méi)有,則需要手動(dòng)創(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對(duì)應(yīng)的模型字段類(lèi)型】

【代碼示例】

from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base
from sqlalchemy import Column, Integer, String, DateTime

# 第一步,準(zhǔn)備連接
engine = create_engine('mysql://root:@10.72.100.1:8081/test_database_1?charset=utf8',echo=True)

# 第二步,聲明ORM模型的基類(lèi)
Base = declarative_base()


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

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

您可能感興趣的文章:
  • Laravel框架Eloquent ORM簡(jiǎn)介、模型建立及查詢(xún)數(shù)據(jù)操作詳解
  • django框架面向?qū)ο驩RM模型繼承用法實(shí)例分析
  • MySql用DATE_FORMAT截取DateTime字段的日期值
  • mysql數(shù)據(jù)庫(kù)中的information_schema和mysql可以刪除嗎?

標(biāo)簽:揚(yáng)州 阿里 三明 定西 溫州 山西 福州 無(wú)錫

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ORM模型框架操作mysql數(shù)據(jù)庫(kù)的方法》,本文關(guān)鍵詞  ORM,模型,框架,操作,mysql,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ORM模型框架操作mysql數(shù)據(jù)庫(kù)的方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于ORM模型框架操作mysql數(shù)據(jù)庫(kù)的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    阳新县| 广水市| 新乡市| 吉木乃县| 马公市| 平谷区| 南华县| 奇台县| 邓州市| 浦城县| 岗巴县| 伊春市| 普兰县| 方山县| 开封县| 循化| 柳州市| 长宁县| 临洮县| 博客| 安泽县| 石台县| 壤塘县| 呼图壁县| 奉化市| 如东县| 油尖旺区| 腾冲县| 汨罗市| 射阳县| 容城县| 叙永县| 通河县| 九龙城区| 新建县| 绿春县| 上杭县| 叙永县| 江孜县| 兴安盟| 舒兰市|