第九章 ORM操作

2021-09-11 09:48:04 字數 3589 閱讀 9230

flask_sqlalchemy的使用

使用flask_sqlalchemy中的sqlalchemy進行初始化:

from flask_sqlalchemy import sqlalchemy

from flask import flask

設定配置資訊 在config.py檔案中新增以下配置資訊:

sqlalchemy_database_uri =

'mysql+pymysql://root:root@localhost:3306/test?charset=utf8'

sqlalchemy_track_modifications =

false

from flask_sqlalchemy import sqlalchemy

from flask import flask

'config'

)

做一下測試

db.create_all(

)

如果沒有報錯,說明配置沒有問題,如果有錯誤,可以根據錯誤進行修改。

flask_sqlalchemy模型建立

from flask import flask

from flask_sqlalchemy import sqlalchemy

'config'

)# 建立模型類

class

user

(db.model):id

= db.column(db.integer,primary_key=

true

,autoincrement=

true

) username = db.column(db.string(32)

,nullable=

false

)

db.create_all(

)# 將模型對映到資料庫中

其他引數:

flask_sqlachemy處理資料的方法

def

insert()

:try

: user = user(username=

'fuqiang'

) db.session.add(user)

db.session.commit(

)return user

except

: db.session.rollback(

)return

none

def

delete()

:try

: obj= user.query.filter_by(id=

id).delete(

) db.session.commit(

)return obj

except

: db.session.rollback(

)return

none

from sqlalchemy import text

defupdate()

: data =

where =

'id=1'

try:

user= user.query.filter_by(text(where)

).update(data)

db.session.commit(

)return user

except

: db.session.rollback(

)return

none

# 第一種查詢方式

defselect()

: user = user.query.

filter

(user.

id==id)

.all()

return user

# 第二種查詢方式

defselect()

: user = user.query.filter_by(id=

2).all()

return user

# 第三種查詢方式

defselect()

: where =

'id>1'

user = user.query.filter_by(text(where)).

all(

)return user

sqlalchemy建立外來鍵

新增外來鍵foreignkey

from flask import flask

from flask_sqlalchemy import sqlalchemy

'config'

)# 建立模型類

class

user

(db.model)

: __tablename__ =

'user'

id= db.column(db.integer,primary_key=

true

,autoincrement=

true

) username = db.column(db.string(32)

,nullable=

false

) __table_args__ =

class

userdetail

(db.model)

: __tablename__ =

'detail'

id= db.column(db.integer,primary_key=

true

,autoincrement=

true

) nickname = db.column(db.string(32)

,default='')

email = db.column(db.string(

255)

,default='')

address = db.column(db.string(

255)

,default='')

uid = db.column(db.integer,db.foreignkey=

'user.id'

)#增加外來鍵

users = db.relationship(

'user'

,backref=db.backref(

'details'))

__table_args__ =

db.create_all(

)# 將模型對映到資料庫中

使用外來鍵獲取資料

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...

第九章作業

班級 0401304 學號 2013211526 姓名 鄧小俊 2.身份驗證 依據使用者所提供的身份資訊,來進行登入驗證,可以再細分為使用者是否可以登入sql sever 使用者是否可以登入到指定的目標資料庫等。授權 已通過身份驗證的使用者,檢查其所被賦予的許可權,是否可以訪問或者執行目標的物件 3...

第九章 引用

引用擁有指標的所有功能,只是語法更加的簡單 1 引用就是別名,變數的另外乙個名字,變數和別名它們的位址是一樣的,操作別名就是操作變數 2 引用就是別名常量,一旦引用被初始化就不能再改變了 可以理解為指標常量,指向的值不能改變,能改變的只是它的該位址處的值 3 引用物件huamn mike human...