Как создать класс сразу после запуска сервера Django и получить доступ к его членам позже в файле views.py

Я столкнулся с простой проблемой в 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, допустим, есть какая-то магия, которая передает инстанцированный экземпляр в качестве параметра в метод view.

def index(request, instantiatedClass :MyClass):
  a=instantiatedClass.foo()
  return HttpResponse(f"{a} is your var.")

Это то, что я хочу. но я исследовал и в urls.py нет опций, которые могут передать пользовательские параметры в метод pointed views.py, кроме передачи информации url пользователем.

Я считаю, что модель Django ведет себя и инстанцируется не так, как обычный класс.

Так как же я могу этого добиться?

Все, что вы объявили вне функций в views.py, будет инициировано после запуска вашего сервера только один раз. В этом случае ваша переменная new будет экземпляром MyClass и будет храниться в оперативной памяти, как только вы перезапустите свой сервер, ее данные будут потеряны.

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.")
Вернуться на верх