我在 Django 中遇到了一個簡單的問題,這個論壇上有類似的問題,但沒有正確回答,所以我再寫一次。
我的問題和這個問題一樣。如何在啟動 Django 服務器后實體化一個類并稍后在 views.py 中訪問其成員
我必須在服務器啟動時實體化自定義類,并且應該通過訪問實體化自定義類的方法來集成到視圖中。
假設我們創建了這個類并在服務器啟動時實體化并存盤到可以在以后使用的變數中,例如 urls.py 或其他地方。(我不知道怎么做)
class MyClass:
def __init__(self):
self.a=3
def foo(self):
return self.a
...
#When django server starts
new=MyClass()
在 view.py 中,假設有一些魔法將實體化的實體作為引數傳遞給視圖的方法。
def index(request, instantiatedClass :MyClass):
a=instantiatedClass.foo()
return HttpResponse(f"{a} is your var.")
這就是我要的。但我進行了調查,在 urls.py 中,除了用戶傳遞 url 資訊之外,沒有其他選項可以將自定義引數傳遞給指向 views.py 的方法。
我相信 Django 的模型的行為和實體化方式與普通類不同。
那么我該如何實作呢?
uj5u.com熱心網友回復:
您在函式之外宣告的所有內容都views.py將在您啟動服務器一次后啟動。在這種情況下,您的new變數將是一個實體,MyClass并將存盤在 RAM 中,一旦您重新啟動服務器,它的資料就會丟失。
any_views.py
class MyClass:
def __init__(self):
self.a = 3
def foo(self):
return self.a
new = MyClass()
def index(request):
a = new.foo()
print(a)
return HttpResponse(f"{a} is your var.")
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/490901.html
