23 flask ORM簡單使用

2021-10-14 23:16:08 字數 2366 閱讀 3205

2. 大白話:物件模型與資料庫表的對映

1. 用`declarative_base`根據`engine`建立乙個orm基類。

from sqlalchemy import create_engine,column,integer,string

from sqlalchemy.ext.declarative import declarative_base

hostname = '127.0.0.1'

port = '3306'

database = 'test_flask_learn'

username = 'root'

password = '123456'

# dialect+driver://username:password@host:port/database

db_uri = "mysql+pymysql://:@:/?charset=utf8".format(username=username,password=password,host=hostname,port=port,db=database)

engine = create_engine(db_uri)

base = declarative_base(engine)

2. 用這個`base`類作為基類來寫自己的orm類。要定義`__tablename__`類屬性,來指定這個模型對映到資料庫中的表名。

class person(base):

__tablename__ = 'person'

3. 建立屬性來對映到表中的字段,所有需要對映到表中的屬性都應該為column型別:

class person(base):

__tablename__ = 'person'

id = column(integer, primary_key=true, autoincrement=true)

name = column(string(50))

age = column(integer)

country = column(string(50))

4. 使用`base.metadata.create_all()`來將模型對映到資料庫中。

5. 一旦使用`base.metadata.create_all()`將模型對映到資料庫中後,即使改變了模型的字段,也不會重新映**。

完整**:

# encoding: utf-8

from sqlalchemy import create_engine, column, integer, string

from sqlalchemy.ext.declarative import declarative_base

hostname = '127.0.0.1'

port = '3306'

database = 'test_flask_learn'

username = 'root'

password = 'zhoubeijing130'

# dialect+driver://username:password@host:port/database

db_uri = "mysql+pymysql://:@:/?charset=utf8".format(username=username,

password=password,

host=hostname, port=port,

db=database)

engine = create_engine(db_uri)

base = declarative_base(engine)

# create table person(id int primary key autoincrement,name varchar(50),age int)

# 1. 建立乙個orm模型,這個orm模型必須繼承自sqlalchemy給我們提供好的基類

class person(base):

__tablename__ = 'person'

# 2. 在這個orm模型中建立一些屬性,來跟表中的字段進行一一對映。這些屬性必須是sqlalchemy給我們提供好的資料型別。

id = column(integer, primary_key=true, autoincrement=true)

name = column(string(50))

age = column(integer)

country = column(string(50))

# 3. 將建立好的orm模型,對映到資料庫中。

base.metadata.create_all()

23年的簡單回顧

有人說 往事不堪回首.我也常常這麼想,所以回首也要很大的勇氣。耳邊響起了姜育恆的 再回首 我曾經在幽幽暗暗反反覆覆中追問,才知道平平淡淡從從容容才是真,再回首恍然如夢,再回首我心依舊,只有那無盡的長路伴著我。每當我聽起這首歌,我都有一種想仔細做個回顧的衝動,但卻沒有這份勇氣.直到今天。簡單的說,稀里...

23種設計模式01 簡單工廠

一 設計模式的分類 總體來說設計模式分為三大類 建立型模式,共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。結構型模式,共七種 介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式。行為型模式,共十一種 策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 ...

(23)python集合的使用

集合是無序可變,元素不能重複。實際上,集合底層是字典實現,集合的所有元素都是字典中的 鍵物件 因此是不能重複的且唯一的。1.使用 建立集合物件,並使用 add 方法新增元素 a a a.add 9 a 2.使用 set 將列表 元組等可迭代物件轉成集合。如果原來資料存在重複資料,則只保留乙個。a a...