Я пишу программу на django, где мне нужно записать результаты формы в файл JSON, а из этого файла JSON записать переменные в файл html. Мне удалось получить доступ к переменным файла json в файле html, но программа представлений для записи переменных формы в json не работает. Вот мой код:
views.py
from django.shortcuts import render
from .forms import ListForm
from django.http import HttpResponseRedirect
import json
import os
from django.conf import settings
pricesFile = os.path.join(settings.BASE_DIR, 'CharlemagneApp/static/prices.json')
accountInfoFile = os.path.join(settings.BASE_DIR, 'CharlemagneApp/static/accountInfo.json')
def MakeMoney(request):
if request.method == 'POST':
form = ListForm(request.POST)
if form.is_valid():
def getJSON(filePathAndName):
with open(filePathAndName, 'r') as fp:
return json.load(fp)
def StartProgram(request):
#print("program started")
rawJSON = getJSON(pricesFile)
rawJSON['capital'] = int(form.cleaned_data['capitalToInvest'])
with open(pricesFile, 'w') as fp:
json.dump(rawJSON, fp)
rawJSON2 = getJSON(accountInfoFile)
rawJSON2['email'] = form.cleaned_data['robinUser']
rawJSON2['pass'] = form.cleaned_data['robinPass']
with open(accountInfoFile, 'w') as fp:
json.dump(rawJSON2, fp)
return render(request, 'index.html')
StartProgram()
return HttpResponseRedirect('/index.html/')
else:
form = ListForm()
return render(request, 'home.html', {'form': form})
def Pass(request):
return render(request, 'index.html')
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('index.html', views.MakeMoney, name='index'),
path('home.html', views.Pass, name='home')
]
accountInfo. json
{
"email": "bobqwerty@gmail.com",
"pass": "abc1234"
}
index. html
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"> </script>
<script>
$(function() {
$.getJSON('../static/accountInfo.json', function(data) {
console.log(data);
var tblRow = "<tr>" + "<td>" + data.email + "</td>" + "<td>" + data.pass + "</td>" + "</tr>"
$(tblRow).appendTo("#userdata tbody");
});
});
</script>
</head>
<body>
<p>Your money is currently being invested. Open your Robinhood account to see it in action.</p>
<div class="wrapper">
<div class="profile">
<table id="userdata" border="1">
<thead>
<th>Robinhood Email</th>
<th>Robinhood Password</th>
<th>Capital to Invest</th>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</body>
</html>
home. html
{% extends 'base.html' %}
{% block title %}Home{% endblock %}
{% block content %}
<form action="/home.html" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
{% endblock %}
Любая помощь в решении этой ошибки будет принята с благодарностью, так как я пробовал много решений без работы. Заранее спасибо!