2017-07-04 79 views
-4
的模塊

我嘗試使用Django視圖中的類。Python/Django - 沒有名爲

sync.py

import requests 

class Sync: 

    def do(): 
     r = requests.post('http://192.168.1.7/api/report_x') 
     print(r.response) 

views.py

import sync 

def index(request): 
    s = Sync() 
    s.do() 
    return HttpResponse("Hello, this is index") 

當我從瀏覽器訪問索引我得到:

全局名稱 '同步' 是未定義

我在做什麼錯?

+1

將第一行改爲'from from sync import sync' – TheDarkKnight

回答

5

直接引用Sync()將不適用於當前導入語句。

它更改爲:

from sync import Sync 

或使用:

s = sync.Sync() 
1

導入使用它

from sync import Sync 
0

假設你的文件目錄是正確的,而不是之前之所以名對於該錯誤,請將您的代碼更改爲以下內容:

from sync import Sync # simply import sync just calls the synv.py file, not the Sync class 

def index(request): 
    s = Sync() 
    s.do() 
    return HttpResponse("Hello, this is index") 
5

如果你正在編寫Python,你應該實際編寫Python。 Python不是Java。

你不應該在這裏使用一個類。定義一個名爲sync的獨立函數,用from sync import sync導入它,然後調用它。不需要一個沒有狀態的事物的實例。

+0

tiny edit(但是因爲作者可能會簡單地粘貼):'from sync import Sync'(大寫字母) – TheDarkKnight

+2

不,我建議OP不使用類在所有。函數的樣式是'lower_case_with_underscores'。 –