Chcę utworzyć nowy plik .py, gdzie chcę przechowywać pewne konkretne zmienne, które zmieniają się w sposób ciągły
Na przykład w zmiennych.py
var1 = 5
var2 = 10
var3 = "Hello"
A następnie w widokach.py po prostu zrobienie z myApp importu I chcę ich używać we wszystkich widokach tylko
{{ var1 }}
{{ var2 }}
Dlaczego nie działa?
2 odpowiedzi
Jeśli nie są używane przez poglądy, ale tylko dla renderowania możesz zrobić kontekst_procesor
Wewnątrz your_app / zmienne.py
def my_variables(request):
return {
"var1": True,
"var2": "foo",
"var3": 42,
}
Następnie w twoich ustawieniach.py
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages",
"your_app.variables.my_variables",
)
Te zmienne będą teraz dostępne w każdym renderowaniu.
Musisz tylko przekazać je jako kontekst:
from django.shortcuts import render
from myapp.variables import var1, var2, var3
def my_view(request):
return render(request, 'myapp/index.html', {"var1":var1, "var2":var2, "var3":var3})
https://docs.djangoproject.com/en/1.6/topics/http/shortcuts/
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.