Я создал веб-приложение, которое принимает текстовый файл, читает каждую строку, принимает 11-й символ и сохраняет его в SQLite3 db. Как заблокировать базу данных или иметь две или более отдельных таблиц во время выполнения нескольких запросов?
Я добавил добавление ATOMIC_REQUESTS ': True для settings.py в Django.
и я попытался создать временные таблицы для каждого запроса, но не могу понять это. Я довольно свежий для Django 2.2
My View.py
def home(request):
if request.method == 'GET':
return render(request, 'home.html')
if request.method == 'POST':
form = DocumentForm(data=request.POST, files=request.FILES)
print(form.errors)
if form.is_valid():
try:
f = request.FILES['fileToUpload']
except:
print('\033[0;93m'+ "No File uploaded, Redirecting" +'\033[0m')
return HttpResponseRedirect('/tryagain')
print('\033[32m'+ "Success" +'\033[0m')
print('Working...')
line = f.readline()
while line:
#print(line)
mst = message_typer.messages.create_message(str(line)[11])
line = f.readline()
else:
print('\033[0;91m'+ "Failed to validate Form" +'\033[0m')
return HttpResponseRedirect('/output')
return HttpResponse('Failure')
def output(request):
s = message_typer.messages.filter(message='s').count()
A = message_typer.messages.filter(message='A').count()
d = message_typer.messages.filter(message='d').count()
E = message_typer.messages.filter(message='E').count()
X = message_typer.messages.filter(message='X').count()
P = message_typer.messages.filter(message='P').count()
r = message_typer.messages.filter(message='r').count()
B = message_typer.messages.filter(message='B').count()
H = message_typer.messages.filter(message='H').count()
I = message_typer.messages.filter(message='I').count()
J = message_typer.messages.filter(message='J').count()
R = message_typer.messages.filter(message='R').count()
message_types = {'s':s, 'A':A, 'd':d, 'E':E, 'X':X, 'P':P,\
'r':r, 'B':B, 'H':H, 'I':I, 'J':J, 'R':R }
output = {'output':message_types}
#return HttpResponse('Received')
message_typer.messages.all().delete()
return render(request, 'output.html',output)
Когда веб-страница загружается, на ней должна отображаться простая разбивка каждого символа в 11-й позиции загруженного текстового файла.
Однако, если два запроса выполняются одновременно, первая страница, которая делает запрос, получает ошибку операции; БД заблокирован.
Трассировка сюда:
message_typer.messages.all().delete()
Вторая страница будет суммой двух загруженных файлов.
Я хочу стереть таблицу после, чтобы у следующего пользователя была пустая таблица для заполнения и подсчета.
Есть ли лучший способ?