print 'Hello world!'
爲__init__.py
在我的Django項目。當我現在運行./manage.py runserver
,我得到
[email protected]:~/Programy/project$ ./manage.py runserver
Hello world!
Hello world!
Validating models...
0 errors found
爲什麼__init__.py
運行兩次?它只能加載一次。
print 'Hello world!'
爲__init__.py
在我的Django項目。當我現在運行./manage.py runserver
,我得到
[email protected]:~/Programy/project$ ./manage.py runserver
Hello world!
Hello world!
Validating models...
0 errors found
爲什麼__init__.py
運行兩次?它只能加載一次。
它只能加載一次... 每個進程。我猜manage.py
分叉,並且啓動了兩個獨立的進程。你能打印os.getpid()
的結果嗎?
找出答案的一個簡單方法是引發異常。或許,這樣的事情在你的初始化的.py:
import os
if os.path.isfile('/tmp/once.log'):
raise Exception
open('/tmp/once.log','w').write('first time')
然後你可以檢查回溯。
或者你可以把一個斷點,並在調試器... – Iftah 2014-01-05 12:58:36
沒錯。 Django使用兩個進程來重新加載功能(即重新啓動代碼更改),如果您運行'./manage.py runserver --noreload',您只會得到一個進程。 – Iftah 2014-01-05 12:57:26
如果您使用'os.system('date +%Z')'檢查系統時區,則它第一次是您的本地時區。第二次是UTC,假設'settings.py'中有'TIMEZONE ='UTC''。 – osa 2014-04-22 19:10:52