2011-09-22 82 views
1

我在我的django項目中有幾個應用程序。我想在所有應用程序中重新使用一些功能。我創建了一個新的應用程序,併爲其添加了一個自定義的functions.py。嘗試以下操作:如何在django項目中的應用程序之間正確共享代碼

from myNewApp import * 
from myNewApp import functions 

我得到NameError:全局名稱XXX未定義

我是不是忽略一些重要的事情?

你會如何推薦我解決跨多個應用程序重複使用代碼的問題?

感謝,

+1

「但是,以下都不起作用」?你遇到了什麼錯誤?請對你所看到的非常具體,因爲我們無法猜測。 –

回答

4

試想一下,你有一個名爲公共您存儲所有要共享代碼項目。然後,您想在名爲foo的項目中使用公用代碼。試想一下,你有如下目錄:

/home/shared/commons.py 
/home/tim/projects/foo.py 

commons.py有這樣的內容:

def say_hello(): 
    return "Hello World!" 

如果你希望能夠導入模塊公共在文件測試.py放入本文件:

import sys 
sys.path.append("/home/shared/") 

import commons 
print commons.say_hello() 

A nd它會打印出「Hello world!」。

+1

你幾乎肯定不應該在Django項目中做任何sys.path.append。更好的選擇是創建一個「通用」應用程序,您可以使用標準的Django方式從所有其他應用程序導入該應用程序。 – Dan

3

確保應用程序上面的目錄是在你的PYTHONPATH

相關問題