Ich bin neu in Django und daher hätte ich ein paar Fragen zu stellen.Schwere Berechnung in Django
Ich folge dem Tutorial auf dieser Grundlage.
http://hplgit.github.io/web4sciapps/doc/pub/._web4sa_django006.html
Sie haben eine Rechen Klasse haben, und es wird in der views.py genannt die Berechnung auszuführen.
Rechen Klasse
from numpy import exp, cos, linspace
import matplotlib.pyplot as plt
import os, time, glob
def damped_vibrations(t, A, b, w):
return A*exp(-b*t)*cos(w*t)
def compute(A, b, w, T, resolution=500):
"""Return filename of plot of the damped_vibration function."""
print os.getcwd()
t = linspace(0, T, resolution+1)
y = damped_vibrations(t, A, b, w)
plt.figure() # needed to avoid adding curves in plot
plt.plot(t, y)
plt.title('A=%g, b=%g, w=%g' % (A, b, w))
if not os.path.isdir('static'):
os.mkdir('static')
else:
# Remove old plot files
for filename in glob.glob(os.path.join('static', '*.png')):
os.remove(filename)
# Use time since Jan 1, 1970 in filename in order make
# a unique filename that the browser has not chached
plotfile = os.path.join('static', str(time.time()) + '.png')
plt.savefig(plotfile)
return plotfile
if __name__ == '__main__':
print compute(1, 0.1, 1, 20)
views.py
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponse
from models import InputForm
from compute import compute
import os
def index(request):
os.chdir(os.path.dirname(__file__))
result = None
if request.method == 'POST':
form = InputForm(request.POST)
if form.is_valid():
form2 = form.save(commit=False)
result = compute(form2.A, form2.b, form2.w, form2.T)
result = result.replace('static/', '')
else:
form = InputForm()
return render_to_response('vib1.html',
{'form': form,
'result': result,
}, context_instance=RequestContext(request))
frank zu sein, die ich nicht zu bin sicher, ob dies der richtige Weg ist, es zu tun. Soweit ich weiß, werden Ansichten auf dem Clientcomputer gerendert. Wenn es jedoch intensive Ressourcen erfordert, sollte es auf der Server-Seite erfolgen. Komme ich hier etwas falsch?
Oder wie soll das Ganze sein?
falsch, Ansichten werden nicht auf dem Clientcomputer verarbeitet. – Sayse
Ich stimme für das Schließen dieser Frage als Off-Topic, weil es auf einer falschen Annahme basiert. –
Ich fühle mich nicht wie Downvote ist die Lösung hier. Wir alle waren Anfänger, und dies ist ein ehrlicher Fehler, der auf verwirrenden Namenskonventionen beruht. –