Django的一些小雞條

2021-10-07 04:36:00 字數 4097 閱讀 1205

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的資料來源 繫結 ...