Flask部落格專案 資料模型的擴建 四

2021-08-31 11:39:24 字數 3173 閱讀 5042

我們在main.py中新增post類:

from sqlalchemy import string,integer,text,datetime

from sqlalchemy import foreignkey

class post(db.model):

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

title = column(string(255))

text = column(text())

publish_date = column(datetime())

#這裡把user表的id作為外來鍵

user_id = column(integer(), foreignkey('user.id'))

def __init__(self, title):

self.title = title

def __repr__(self):

return "".format(self.title)

有了外來鍵,那接下來當然是修改一下user和post的關係啦

from sqlalchemy.orm import relationship

class user(db.model):

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

username = column(string(255))

password = column(string(255))

#lazy引數和backref是成對出現的

posts = relationship('post', backref='user', lazy='subquery')

def __init__(self, username):

self.username = username

#方便shell命令驗證

def __repr__(self):

return "".format(self.username)

from sqlalchemy import table

from sqlalchemy.ext.declarative import declarative_base

base = declarative_base()

tags = table(

'post_tags', base.metadata,

column('post_id', integer(), foreignkey('post.id')),

column('tag_id', integer(), foreignkey('tag.id'))

)class post(db.model):

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

title = column(string(255))

text = column(text())

publish_date = column(datetime())

comments = relationship('comment', backref='post', lazy='dynamic')

user_id = column(integer(), foreignkey('user.id'))

#這裡的多對多關係relationship的backref引數必須用backref函式(lazy)

flask 資料模型的外來鍵關係

sql資料庫中,兩個表之間的關係表現為外來鍵.在sqlalchemy的模型中,也可以表現這種模型之間的關聯關係.class role db.model tablename roles id db.column db.integer,primary key true name db.column db...

資料模型的概念,資料模型的作用和資料模型的三個要素

資料模型是資料庫中用來對現實世界進行抽象的工具,是資料庫中用於提供資訊表示和操作手段的形式架構。一般地講,資料模型是嚴格定義的概念的集合。這些概念精確描述了系統的靜態特性,動態特性和完整性約束條件。因此資料模型通常由資料結構,資料操作和完整性約束三部分組成 1 資料結構 是研究的物件型別的集合,是對...

部落格專案 資料庫篇

使用者表 create table lblog user id int 11 not null auto increment comment 使用者表id username varchar 50 not null comment 使用者名稱 password varchar 50 not null ...