django flask的一些小點

2021-10-02 06:01:21 字數 2353 閱讀 7012

1.django中路由有path和re_path兩種

通過re_path傳參也有命名匹配和分組命名匹配兩種

分組匹配 re_path(r"^index/(\d+)",v

iews

.ind

ex)分

組命名匹

配rep

ath(

r"da

te/(

?p

ar

>0−

9[4]

)/(?

p

nt

h>0−

9[2]

)",views.index) 分組命名匹配 re_path(r"^date/(?p[4])/(?p[2])

",view

s.in

dex)

分組命名

匹配re

p​at

h(r"

date

/(?p

ar>0−

9[4]

)/(?

pnth>0−

9[2]

)",views.index)

注意二者不能混用(本人吃過虧,血和淚的教訓!!!)

2.靜態檔案

在settings裡設定 static_url=』/static/』 這是搜尋靜態檔案的路由

staticfiles_dirs =[os.path.join(base_dir,『static』)],這是指出靜態檔案的位置

注意收集靜態檔案時

static_root = os.path.join(base_dir,『static』)

將這條語句放到settings裡時要把關於靜態檔案和的配置都要暫時注釋掉

執行 python.manage.py collectedstatic 收集結束後這收集靜態檔案語句注釋,之前的解開

反正就是收集靜態檔案語句不能和其他有關或者靜態檔案的語句共存

3.檢視類

django與flask的檢視類大同小異 就是繼承的類有些差異

django 的檢視類繼承 view 且在路由指出時需要加乙個as_view()方法

falsk檢視類 首先編寫flask檢視類 需要匯入

from flask_restful import api,restful

還需要指出路由

api.add_resouce(類名,「urls」) 注意這裡的 是可以有多個的意思

4.外來鍵關係

django一對多

subject = models.foreignkey(to=subject,to_filed=『id』,on_delete=models.cascade)

查詢時 有欄位用字段 沒字段用類名小寫

flask一對多

subject = db.clumn(db.interge,db.foreignkey('student.id'))

student = db.relationship('student',backref="student")

查詢時 用自己編寫的對映關係欄位名

5.表單類校驗

django

data_valid=userform(reuqest.post,request.files) 例項化乙個表單物件

if data_valid.is_valid() 發起校驗 如果校驗成功

data=data.cleaned_data 獲取資料_

接下來就可以 從data獲取資料進行儲存了

falsk

user_form = userform()

if user_form.validate_on_submit():

data=user_form.data

接下來就可以 從data獲取資料進行儲存了

6.聚合,分組

django的聚合分組都需要導包 從django.db.models 用啥倒啥

舉個聚合的例子

user.object.all().aggregate(max(「age」)) 從user裡找年齡最大的

分組user.object.values(「gender」).annotate(count(「id」)) 找男生有多少人 女生有多少人

f查詢(針對字段查詢)

user.object.filter(weight__lt = f(『height』)) 找體重小於身高的資料

q查詢(預設是且關係)

user.objects.filter(q(age=18)|q(age=22)) 找年齡是18和22 的人

7.django falsk模板過濾器

django:

register = template.library()

未完待續還會繼續補充的

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