⒈、django專案啟動時,自定義執行某個py檔案。
1如果執行兩次,是因為django內部自動重啟導致:2from django.utils.module_loading import
autodiscover_modules34
class
5 name = '
stark'6
7def
ready(self):
8 autodiscover_modules('
stark
')
python manage.py runserver 120.0.0.1:8001 --noreload
⒉、單例模式
通過利用python模組匯入的特性:在python中,如果已經匯入過的檔案再次被重新匯入時候,python不會再重新解釋一遍,而是選擇從記憶體中直接將原來匯入的值拿來用。
1綜合以上,自己實現的路由分發方式:def include(arg, namespace=none):3if
isinstance(arg, tuple):4#
callable returning a namespace hint.
5try:7
except
valueerror:8if
namespace:
9raise
improperlyconfigured(10'
cannot override the namespace for a dynamic module that '11
'provides a namespace.'12
)13raise
improperlyconfigured(14'
passing a %d-tuple to include() is not supported. pass a '15
''16'
provide the namespace argument to include() instead.
' %len(arg)17)
18else:19
#no namespace hint - use manually provided namespace.
20 urlconf_module =arg
2122
ifisinstance(urlconf_module, str):
23 urlconf_module =import_module(urlconf_module)
24 patterns = getattr(urlconf_module, '
urlpatterns
', urlconf_module)'26
if namespace and
not27
raise
improperlyconfigured(28'
'29''
30'module, or pass a 2-tuple containing the list of patterns and '31
'',32
)33 namespace = namespace or34#
make sure the patterns can be iterated through (without this, some35#
testcases will break).
36if
isinstance(patterns, (list, tuple)):
37for url_pattern in
patterns:
38 pattern = getattr(url_pattern, '
pattern
', none)
39if
isinstance(pattern, localeprefixpattern):
40raise
improperlyconfigured(41'
using i18n_patterns in an included urlconf is not allowed.'42
)43include函式 原始碼
⒊、django路由分發的本質:include
以往寫的include函式實現路由分發
urlpatterns =[
url(r'^rbac/',include(('rbac.urls','rbac'),namespace='rbac'))
]其實,include函式主要返回有三個元素的元組。
urlpatterns =[
url(r
'^web/
第乙個引數是urls檔案物件,通過此物件可以獲取urls.patterns獲取分發的路由。
]在原始碼內部,讀取路由時:
如有第乙個引數有:urls.patterns 屬性,那麼子路由就從該屬性中後去。
如果第乙個引數無:urls.patterns 屬性,那麼子路由就是第乙個引數。
1 urlpatterns =[2 url(r'
^web/
', ([
3 url(r'
^index/
', views.index),
4 url(r'
^home/
', views.home),
第乙個引數是urls檔案物件,通過此物件可以獲取urls.patterns獲取分發的路由。
6 ]
PMI的一些理念
最近在看pmp相關的書籍,對pmi的理念,深以為然,記錄如下。同時關注結果和過程 專案管理既要看結果好不好,同時也要關注過程。好的過程才能產生好的結果。如果光有好的結果嗎,沒有好的過程,那麼這個結果不會持久。以干係人管理為中心 傳統專案管理強調的是管理專案範圍 時間和成本三重制約,現代專案管理強調的...
巴菲特的一些投資理念
1 希望你不要認為自己擁有的 僅僅是一紙 每天都在變動的憑證,而且一旦某種經濟事件或政治事件使你緊張不安就會成為你拋售的候選物件.相反,我希望你將自己想象成為公司的所有者之一,對這家企業你願意無限期的投資,就像你與家庭中的其他成員合夥擁有的乙個農場或一套公寓.2 如果我們有堅定的長期投資期望,那麼短...
對落地DevOps理念的一些反思
作者 杜屹東編輯 郭蕾 在 thoughtworks 的一篇題為 devops 團隊之殤 的文章中,thoughtworks 軟體工程師杜屹東反思了 devops 的價值以及挑戰。devops 理念從誕生到現在已經有近 10 年的時間,然而社群對於它的爭論卻未停止過。devops 希望能夠消除開發與...