最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年07月25日 09:07:02   作者:xinhua  
ORM 全稱是(Object Relational Mapping)表示對(duì)象關(guān)系映射; 通俗理解可以理解為編程語(yǔ)言的虛擬數(shù)據(jù)庫(kù);這篇文章主要介紹了ORM模型框架操作mysql數(shù)據(jù)庫(kù)的方法,需要的朋友可以參考下

【什么是ORM】

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

【理解ORM】

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

【ORM的重要特性】

1.面向?qū)ο蟮木幊趟枷?,方便擴(kuò)充

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

3.支持多種類型的數(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的使用】

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

開始連接數(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ù))——連接到哪種類型的數(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)處理

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

聲明ORM模型基類

from sqlalchemy.orm import declarative_base

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

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

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

然后還需要設(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)的模型字段類型】

【代碼示例】

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模型的基類
Base = declarative_base()


# 第三步,實(shí)現(xiàn)ORM模型類
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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL MHA 運(yùn)行狀態(tài)監(jiān)控介紹

    MySQL MHA 運(yùn)行狀態(tài)監(jiān)控介紹

    這篇文章主要介紹MySQL MHA 運(yùn)行狀態(tài)監(jiān)控,MHA(Master HA)是一款開源的 MySQL 的高可用程序,它為 MySQL 主從復(fù)制架構(gòu)提供了 automating master failover 功能,想具體了解的小伙伴可以和小編一起學(xué)習(xí)下面文章內(nèi)容
    2021-10-10
  • MySQL的復(fù)合索引總結(jié)

    MySQL的復(fù)合索引總結(jié)

    這篇文章主要介紹了MySQL的復(fù)合索引總結(jié),針對(duì)索引進(jìn)行一些優(yōu)化。一些表結(jié)構(gòu)本身已經(jīng)有了不少索引,如果再繼續(xù)添加索引,勢(shì)必會(huì)影響到插入數(shù)據(jù)的性能,需要的朋友可以參考一下
    2021-12-12
  • 在大數(shù)據(jù)情況下MySQL的一種簡(jiǎn)單分頁(yè)優(yōu)化方法

    在大數(shù)據(jù)情況下MySQL的一種簡(jiǎn)單分頁(yè)優(yōu)化方法

    這篇文章主要介紹了在大數(shù)據(jù)情況下MySQL的一種簡(jiǎn)單分頁(yè)優(yōu)化方法,分頁(yè)優(yōu)化是MySQL優(yōu)化的常用手段之一,需要的朋友可以參考下
    2015-05-05
  • mysql SELECT FOR UPDATE語(yǔ)句使用示例

    mysql SELECT FOR UPDATE語(yǔ)句使用示例

    本文介紹在mysql中使用mysql SELECT FOR UPDATE 語(yǔ)句時(shí)的一些問(wèn)題與解決辦法
    2013-11-11
  • mysql之explain使用詳解(分析索引)

    mysql之explain使用詳解(分析索引)

    在這里對(duì)explain的各個(gè)字段進(jìn)行詳細(xì)的分析,來(lái)幫助大家分析自己所寫的sql是否最佳的使用了索引,需要的朋友可以參考下
    2018-01-01
  • mysql注入之長(zhǎng)字符截?cái)?orderby注入,HTTP分割注入,limit注入方式

    mysql注入之長(zhǎng)字符截?cái)?orderby注入,HTTP分割注入,limit注入方式

    這篇文章主要介紹了mysql注入之長(zhǎng)字符截?cái)?orderby注入,HTTP分割注入,limit注入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MySQL 常見(jiàn)數(shù)據(jù)拆分辦法

    MySQL 常見(jiàn)數(shù)據(jù)拆分辦法

    在生產(chǎn)環(huán)境中,由于業(yè)務(wù)的增長(zhǎng)或者業(yè)務(wù)的拆分,DBA經(jīng)常需要拆庫(kù)操作。那么我們常見(jiàn)的拆庫(kù)手段有哪些呢
    2016-07-07
  • Can''t connect to MySQL server的解決辦法

    Can''t connect to MySQL server的解決辦法

    ERROR 2003 (HY000): Can't connect to MySQL server on '*.*.*.*' (113)的解決辦法
    2010-06-06
  • MySQL 中處理 BLOB 和 CLOB 數(shù)據(jù)類型小結(jié)

    MySQL 中處理 BLOB 和 CLOB 數(shù)據(jù)類型小結(jié)

    在MySQL中,BLOB和CLOB 數(shù)據(jù)類型用于存儲(chǔ)大量的二進(jìn)制數(shù)據(jù)和字符數(shù)據(jù),可以使用SQL 語(yǔ)句或編程語(yǔ)言將二進(jìn)制數(shù)據(jù)和字符數(shù)據(jù)插入到BLOB 和CLOB列中,這篇文章主要介紹了MySQL 中處理 BLOB 和 CLOB 數(shù)據(jù)類型,需要的朋友可以參考下
    2025-03-03
  • MYSQL性能優(yōu)化分享(分庫(kù)分表)

    MYSQL性能優(yōu)化分享(分庫(kù)分表)

    MYSQL性能優(yōu)化之分庫(kù)分表與不停機(jī)修改mysql表結(jié)構(gòu),需要的朋友可以參考下
    2012-02-02

最新評(píng)論

印江| 新田县| 凤城市| 溧水县| 伊川县| 忻州市| 龙泉市| 永胜县| 兴安县| 永修县| 旌德县| 大宁县| 临潭县| 改则县| 厦门市| 应用必备| 海宁市| 互助| 宽城| 怀化市| 黑山县| 固始县| 福建省| 施秉县| 乌拉特中旗| 巴林左旗| 柳江县| 巴林左旗| 普宁市| 彰化县| 六安市| 全州县| 连州市| 永川市| 峨眉山市| 吉木萨尔县| 达日县| 博乐市| 琼结县| 施秉县| 巫溪县|