2016-02-05 52 views
0

我有一個python應用程序(我們將調用應用程序)我想有一個Web前端。該應用程序有很多文件,重要的是文件夾樹結構保持原樣。Python腳本可以在不在同一個文件夾中的情況下使用Django數據庫嗎?

我已經建立了一個Django項目,並把它在應用程序的文件夾命名爲「網絡」文件夾中,因此現在的文件夾樹看起來像這樣:

  • [數據]
  • [資源]
  • [網絡]
    • [WebFront]
      • 正常Django應用程序文件
    • [網絡]
      • __init__.py
      • settings.py
      • urls.py
      • wsgi.py
    • __init__.py
    • manage.py
  • main.py

下面是關於應用程序的main.py代碼:

import os 
import django 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Web.Web.settings") 
django.setup() 

此代碼會導致在django.setup()線異常的(我認爲)Django不找項目模塊:ImportError: No module named WebFront(WebFront是Django應用程序的名稱)

我懷疑這是因爲在Django的Python應用程序的目錄運行造成的,因此不能找到該文件夾​​WebFront - 這實際上應該是Web/WebFront

可以這樣做嗎?或者,我應該顛倒順序,並將python應用程序放入django應用程序中?


這不是下列問題重複的文件夾嵌套會導致不同的問題(我認爲)

回答

2

你可以找到您的main.py腳本w在這裏你喜歡。但是,如果它位於Web文件夾之外,則必須將Web添加到Python路徑,否則像import Webfront這樣的導入將會失敗。

import sys 
sys.path.append('/path/to/Web/') 

一旦你這樣做,你可以改變DJANGO_SETTINGS_MODULE

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Web.settings") 
+0

這一工程!但有2個問題。一個 - 我仍然需要將Django指向'Web.Web.Settings' - 路徑編輯不應該修復該問題嗎?和兩個 - 當我嘗試導入模型時,出現錯誤'模型類Web.WebFront.models.MyModel沒有聲明明確的app_label,並且不在INSTALLED_APPS中的應用程序中。「 – Nitay

+0

您如何導入模型?你是什​​麼'INSTALLED_APPS'設置? – Alasdair

+0

'from Web.WebFront.models import MyModel'。我的'INSTALLED_APPS'在列表上只有'WebFront' – Nitay

相關問題