回想一下,利用http協議向伺服器傳參有幾種途徑?
關鍵字引數
注意:兩種引數的方式不要混合使用,在乙個正規表示式中只能使用一種引數方式
分別使用以上兩種獲取url值的方式提取出18 188
位置引數
關鍵字引數
檢視中函式: 引數的位置可以變,跟關鍵字保持一致即可
def index(request, value2, value1):
# 構造上下文
context =
return render(request, 'book/index.html', context)
httprequest物件的屬性get、post都是querydict型別的物件
與python字典不同,querydict型別的物件用來處理同乙個鍵帶有多個值的情況
獲取請求路徑中的查詢字串引數(形如?k1=v1&k2=v2),可以通過request.get屬性獲取,返回querydict物件。
重要:查詢字串不區分請求方式,即假使客戶端進行post方式的請求,依然可以通過request.get獲取請求中的查詢字串資料。請求體資料格式不固定,可以是表單型別字串,可以是json字串,可以是xml字串,應區別對待。
可以傳送請求體資料的請求方式有post、put、patch、delete。
django預設開啟了csrf防護,會對上述請求方式進行csrf防護驗證,在測試時可以關閉csrf防護機制,方法為在settings.py檔案中注釋掉csrf中介軟體,如:
前端傳送的表單型別的請求體資料,可以通過request.post屬性獲取,返回querydict物件。
非表單型別的請求體資料,django無法自動解析,可以通過request.body屬性獲取最原始的請求體資料,自己按照請求體格式(json、xml等)進行解析。request.body返回bytes型別。例如要獲取請求體中的如下json資料
可以進行如下方法操作:
import json
def post_json(request):
json_str = request.body
json_str = json_str.decode() # python3.6 無需執行此步
可以通過request.meta屬性獲取請求頭headers中的資料,request.meta為字典型別。
常見的請求頭如:
具體使用如:
files:乙個類似於字典的物件,包含所有的上傳檔案。
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...
python的django原生sql的實現
當model滿足不了需求的時候 比如 儲存過程 多表連線等 可以使用原生sql。django提供了兩種方法使用原生的sql 你可以使用manager.raw 執行原生sql,它會返回model例項,或者也可以直接執行原生sql,完全忽略model。警告 使用原生sql的時候,要盡可能的使用引數的形式...