一、通過get傳參的方式
1.自定義接收引數類
class paramversion(object):
def determine_version(self, request, *args, **kwargs):
version = request.query_params.get('version')
return version
class usersview(apiview):
versioning_class = paramversion
# 注意:這裡接收引數的類是乙個,所以class為單數,後邊的類只能有乙個
def get(self, request, *args, **kwargs):
print(request.version)
# 通過引數類返回的version資訊直接封裝在request中,可以通過request.version來獲取
return response("詳情頁面")
2.使用框架封裝好的元件來實現
二、將版本資訊寫入到url中
這個方式需要用到的是urlpathversioning類
note三、django 2.0 url()到path()速查表需要注意的是,開發者可以正向的傳遞版本資訊,程式也可以反向的獲取url位址
獲取處理版本的物件資訊:request.versioning_scheme
反向獲取url: request.versioning_scheme.reverse(viewname='url的別名', request=request)
2023年5月2日丹尼爾·赫珀django的,web開發
django 2.0引入了一種定義url的新方法,該方法大大簡化了如何捕獲引數。
在早期版本的django中,您必須使用該url()方法並傳遞帶有命名捕獲組的正規表示式來捕獲url引數。
url(r'^posts/(?p [0-9]+)/$', post_detail_view)
在django 2.0中,您將該path()方法與路徑轉換器一起使用以捕獲url引數。
path('posts/ /', post_detail_view)
path()總是匹配完整的路徑,path('account/login/')等同於url('^account/login/$')。
尖括號( )中的部分捕獲了傳遞給檢視的url引數。冒號(post_id)後面的部分定義引數的名稱,冒號(int)前面的部分命名路徑轉換器。
早期版本的django只是將匹配的字串傳遞給檢視,這意味著您必須編寫以下**:
url(r'^posts/(?p[0-9]+)/$', post_detail_view)
def post_detail_view(request, post_id):
post_id = int(post_id)
...
從django 2.0開始,您只需編寫以下**:
path('posts/')
def post_detail_view(request, post_id):
...
django 2.0隨附五個內建轉換器:
如果預定義的路徑轉換器不適合需求,則可以註冊自定義路徑轉換器,這可以完成一些技巧,例如將url引數直接轉換為模型例項。另外,您仍然可以使用re_path()代替來使用良好的ol'正規表示式path()。
from django.urls import re_path
re_path(r'posts/(?p[0-9]+)/$', post_detail_view)
順便說一句,舊url()功能仍然可用,因此現在無需更改所有url定義。
新path()方法極大地簡化了url處理。我與django合作已有10多年了,至今仍然不記得如何定義命名的正規表示式捕獲組。此外,手動執行型別轉換會違反dry原理。
iOS開發之 Selector引數的傳遞
比如 nsmutabledictionary dic numutabledictionary alloc init dic setvalue haha forkey test nstimer scheduledtimerwithtimeintervatal 2.0 target self selec...
form action中傳遞引數的問題
我做了乙個form 裡面這樣寫的 然後我在後台取orderidz總是取不到,後來上網查了一下我在form中加上了method post 在後台獲取時用 就可以取到了。查了一下原因 表單提交中get和post方式的區別有5點 1.get是從伺服器上獲取資料,post是向伺服器傳送資料。2.get是把引...
Android 中傳遞 json 的問題
原問題來自於csdn問答頻道,更多解決方案見 問題描述 我在開發乙個程式,在 webpage 上使用jquery。post url,function result 根據引數結構,paramstring 是乙個 json字串,如 現在我想在android中執行,再在頁面上新增兩個textview 來輸...