python的django原生sql的實現

2021-07-26 06:50:46 字數 1047 閱讀 5919

當model滿足不了需求的時候(比如:儲存過程、多表連線等),可以使用原生sql。django提供了兩種方法使用原生的sql:你可以使用manager.raw()執行原生sql,它會返回model例項,或者也可以直接執行原生sql,完全忽略model。警告:使用原生sql的時候,要盡可能的使用引數的形式以防止使用者進行sql注入攻擊。

manager.raw()執行原生sql

使用raw()方法執行原生sql,返回model例項:

manager.raw(raw_query, params=none, translations=none)。

舉個列子:

class person(models.model):

first_name = models.charfield(...)

last_name = models.charfield(...)

birth_date = models.datefield(...)

執行原生sql:

... print(p)

john smith

jane jones

具體看官方文件:

直接執行原生sql

使用django.db.connections模組進行執行原生sql,忽略model。

之前封裝了該模組,位址為:

使用方法:

sql = "select id,name,price from test where id > %s and id <%s   "

params = [1,2]

row = fetchall(sql, params)

print(row)

#row的結果是select出來的東西,比如上面的id,name,price。

for obj in row:

print(obj["id"])

print(obj["name"])

print(obj["price"])

django原生的HttpRequest物件

回想一下,利用http協議向伺服器傳參有幾種途徑?關鍵字引數 注意 兩種引數的方式不要混合使用,在乙個正規表示式中只能使用一種引數方式 分別使用以上兩種獲取url值的方式提取出18 188 位置引數 關鍵字引數 檢視中函式 引數的位置可以變,跟關鍵字保持一致即可 def index request,...

Django執行原生SQL

hey,各位小夥伴,這次怎麼來玩一下,如何使用django執行原生sql 我們都知道,python在web界的扛把子,django,可謂是集大成為統一,各種各樣的外掛程式,forms元件,model模型,admin後台 反正就是乙個字,nb 本次就來學一下,如何在django執行原生語句 在使用dj...

django執行原生sql

一 orm row 方法 只能實現查詢 d list models.article.objects.raw select nid,count nid as num,strftime y m create time as ctime from blog article where user id st...