django models 設定預設的查詢排序方式:
class
meta
: ordering =
("-create_time"
)
form 繼承models方法一
from django import forms
class
user
(forms.form)
:class
meta
: models = usermodel
方法二# -*- coding: utf-8 -*-
import re
from django import forms
from django.core.exceptions import validationerror
defmobile_validate
(value)
: mobile_re = re.
compile
(r'^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]$')if
not mobile_re.match(value)
:raise validationerror(
'手機號碼格式錯誤'
)def
username_validate
(value)
: mobile_re = re.
compile
(r'^[0-9a-za-z.@\-\_]$')if
not mobile_re.match(value)
:raise validationerror(
'使用者名稱格式錯誤(不能是中文)'
)class
userform
(forms.form)
:"""user 表單"""
username = forms.charfield(required=
true
, min_length=
2, max_length=
60, validators=
[username_validate,])
depart_id = forms.charfield(required=
false
) depart_name = forms.charfield(required=
false
) role = forms.charfield(required=
false
) userpwd = forms.charfield(max_length=
20, min_length=6,
error_messages=
) useremail = forms.emailfield( required=
true
, error_messages=
) name = forms.charfield( required=
false
) phone = forms.charfield(required=
false
, validators=
[mobile_validate,])
area_level = forms.charfield(validators=
[ regexvalidator(r'^[123]$'
,'請檢查級別'),
])area_status = forms.charfield(validators=
[ regexvalidator(r'^[01]$'
,'請檢查狀態'),
])area_order = forms.charfield(validators=
[ regexvalidator(r'^[0-9]$'
,'請輸入2位數字'),
])
views 裝飾器的使用自定義的兩個裝飾器
def
pre_fun
(func)
:def
inner
(request,
*args,
**kwargs)
:print
(request.path)
kwargs =
return func(request,
*args,
**kwargs)
return inner
defmy_decorator
(func)
:def
(request,
*args,
**kwargs)
:print
('自定義裝飾器被呼叫了'
)print
('請求路徑%s'
% request.path)
return func(request,
*args,
**kwargs)
方法一@pre_fun
defindex
(request,
*args,
**kwargs)
:print
(kwargs)
return render(request,
'index.html'
,)
方法二@method_decorator(pre_fun, name=
"get"
)class
index2view
(view)
:def
get(self, request,
*args,
**kwargs)
:return render(request,
'index.html'
,)
方法三class
index2view
(view)
: @method_decorator(pre_fun)
defget
(self, request,
*args,
**kwargs)
:return render(request,
'index.html'
,)
方法四urlpatterns =
[ path(
'index'
, my_decorator(indexview.as_view())
, name=
'index'),
path(
'', index, name=
'index1'),
path(
'index2'
, index2view.as_view(
), name=
'index2'),
]
django模板全域性變數的使用第一步:寫好全域性變數的函式方法:
def
global_lang
(request)
: 「」「
這裡可以做一些使用者許可權的許可權的處理
request.user
request.path
request.session[
'key'
] 」「」
return
第二步:在settings 中進行配置
templates =[,
},]
第三步:在html中使用全域性變數
或者}
zxing android demo的一些小坑
zxing裡面只帶的android demo有一些 要調整,不能開箱即用 1,申請相機許可權 新版本的相機要動態申請許可權 獲取相機許可權 判斷6.0大於等於.當前許可權時,直接執行,超過6.0的話動態調取許可權 if build.version.sdk int build.version code...
一些小技巧
關注 乙個好的程式設計師不應該把所有的判斷交給編譯器和偵錯程式,應該在程式中自己加以程式保護和錯誤定位,具體措施包括 對於所有有返回值的函式,都應該檢查返回值,除非你確信這個函式呼叫絕對不會出錯,或者不關心它是否出錯。一些函式返回錯誤,需要用其他函式獲得錯誤的具體資訊。例如accept返回inval...
一些小技巧
protected void repparent itemdatabound object sender,system.web.ui.webcontrols.repeateritemeventargs e 在父datalist的itemdatabound事件裡面寫子datalist的資料來源 繫結 ...