1.URL改為from django.urls import include, path
以前用url榛丢,現(xiàn)在用path
其中铲球,包含4個參數(shù),必須的route晰赞、view稼病,非必須的kwargs和name,為url起名可以在任意地方唯一的使用
當包括其它 URL 模式時你應(yīng)該總是使用 include()
掖鱼, admin.site.urls
是唯一例外然走。
2.URL里再也不用正則表達式了,不再有^&這些東西了戏挡,應(yīng)該是已經(jīng)打包好了芍瑞,可以直接用<int:pk>這種方式
3.自己寫的中間件,不可不繼承任何objects了
目前發(fā)現(xiàn)其他中間件繼承自from django.utils.deprecation import MiddlewareMixin褐墅,所以自己寫的中間件也可以這么繼承
4.外鍵models.ForeignKey(Question, on_delete=models.CASCADE)拆檬,現(xiàn)在必須加on_delete參數(shù)
外鍵關(guān)系中,1調(diào)用n的一方妥凳,可以用one.n_set.all()調(diào)用秩仆,關(guān)鍵是_set。在模板中不加括號
5.在settings.py中猾封,自定義installed_app要寫成'yourapp.apps.YourappConfig',
6.在django.shortcuts 中
get_object_or_404()
相當于objects.get,否則404
get_list_or_404()
相當于objects.filter噪珊,否則404
7.去除模板中的鏈接地址硬編碼晌缘,可以在urls.py中為url設(shè)置name,然后在模板中 {% url %} 標簽代替它痢站,如
<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>
這個標簽的工作方式是在 polls.urls 模塊的 URL 定義中尋具有指定名字的條目磷箕。你可以回憶一下,具有名字 'detail' 的 URL 是在如下語句中定義的:
app_name = 'polls' # 在上面加上命名空間
# the 'name' value as called by the {% url %} template tag
path('<int:question_id>/', views.detail, name='detail'),
8.模板中用{{ forloop.counter }}表用{% for %}循環(huán)到了第幾次阵难,如
<input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
9.F()函數(shù)可以用來解決資源更新的競爭岳枷, Avoiding race conditions using F()
admin界面可以自己定義,包括label呜叫,filter篩選過濾空繁,搜索等
https://docs.djangoproject.com/zh-hans/2.0/intro/tutorial07/Middleware 的執(zhí)行順序。在系統(tǒng)根據(jù)WSGI的 environ 構(gòu)造 WSGIRequest 對象后朱庆,Middleware的process_request開始順序執(zhí)行盛泡,然后匹配URL后,具體view執(zhí)行前(娱颊?)傲诵,Middleware的process_view開始順序執(zhí)行凯砍,然后開始處理view,最后Middleware的process_response開始逆序執(zhí)行